Javascript中数据类型的传播

Javascript中数据类型的传播
尽管Javascript是弱类型语言,它也有自己的数据类型:数字、字符串、布尔值、对象、udefined和空。在这方面,对象是一个复杂的数据类型,而对象是由无序对关键值,其余的都是简单的数据类型。注意:变量类型的首字母大写和变量的值的第一个字母是小写。
Javascript不支持自定义类型,因此Javascript中的所有值都属于这六种类型中的一种。

根据ECMAscript 5.1标准,有六种类型的Javascript数据类型:定义、空、布尔值、数字,字符串对象。第一五属于基本型,而最后一个属于对象类型。

最新的ECMAscript 6添加到其他类型:符号(ECMAscript 6新定义)

基本数据类型

未定义的:只有一个值,对于未定义的,意味着空值(没有值),适合所有数据类型。

NULL:只有一个值,NULL,表示一个空对象(没有对象),它只适用于对象类型。

布尔值:有两个值为真和假

数值:这个值是一组64位浮点数字,按照IEEE 754标准,并且没有整数数据结构。它还包含三个特殊值:南方、无穷、无穷大。

字符串:一个值是一个Unicode字符不正确的集合。你必须使用或。

1。字符串

Javascript的String类型用于表示文本数据。它是一组16位无符号整数值的元素。字符串中的每个元素占据字符串的位置。第一个元素的索引是0,下一个是索引1,等等。字符串的长度是元素的个数。

与C语言不同,Javascript中的字符串是不可变的。(例如,Javascript中字符串的操作必须返回一个新字符串,并且原始字符串没有被更改)。

Javascript中的一切都是基于对象的

字符串的创建有两种类型

1。按字面方式创建的字符串是字符串字符串的基本类型。

2,使用字符串()来创建字符串,字符串的基本类型

三.使用构造函数新字符串()创建的字符串,作为对象类型的字符串。

var str1 =Javascript; / /串

var =字符串str2(Javascript); / /串不推荐

VaR STR3 =新的字符串('javascript '); / /对象

对象和字符串也不同。

S1 =2 + 2;创建一个字符串原语

S2 =新字符串(2 + 2 );创建字符串对象

console.log(eval(S1) / /返回);4号

console.log(eval(S2)); / /返回字符串2 + 2

String对象的值的转换字符串

console.log(eval((S值))); / /返回4号

二、布尔

不要混淆原来的值true false和布尔对象的值的真正的假。

1。如果布尔构造函数的参数不是布尔值,则参数将被转换为布尔值。

2,如果参数是0、- 0、空、false、楠、未定义的或空字符串( ),生成的布尔对象的值是false。任何其他值,包括任何对象或字符串false
新布尔(false);
如果(x){
console.log(x.valueof)、类型(x); / /假目标
}
它会做到的,这是惊人的代码

不要通过创建一个新布尔对象将非布尔值转换为布尔值。直接使用布尔函数是正确的。
var =布尔(表达式)
新的布尔(表达式)!
初始化时间

/ false
无功bnoparam =新的布尔();
无功bzero =新的布尔(0);
无功bnull =新的布尔(空);
无功bemptystring =新的布尔();
无功bfalse =新的布尔(假);
/真
无功btrue =新的布尔(真的);
无功btruestring =新的布尔(真);
无功bfalsestring =新的布尔(假);
无功bsulin =新的布尔(苏林);
三、数

根据ECMAscript标准,只有一个Javascript型数字:基于IEEE 754标准的双精度64位二进制格式的值(-(253-1)来253-1)。它不给一个整数,一个特定的类型。除了浮点数的数量,有一些象征性的价值:+无限,无穷,和楠(非数字、非数字)

数字类型只有一个整数,它有两个表示:0可以表示为- 0和+ 0(0 是+ 0的简称)。实际上,这几乎没有受到影响。例如,+ 0 = 0是正确的。但是,您可能要注意除以0的时间:

42 0;

42 无穷大/ 0;

如果参数不能转换成数字,则返回。

在非构造函数(例如:没有新操作符)的上下文中,可以使用数字执行类型转换。

isnan类型判断
number.isnan(南); / /真的
number.isnan(数。南); / /真的
number.isnan(0 / 0) / /真的
这会是真的/在全球(isnan)
number.isnan(南); / /假
number.isnan(定义); / /假
number.isnan({ }); / /假
number.isnan(天书); / /假
全部返回false
number.isnan(真的);
number.isnan(空);
(37)number.isnan;
number.isnan(37 );
number.isnan(37.37 );
number.isnan();
number.isnan();
原型链继承的关系

console.log(号码。原型。__proto__ = =对象。原型); / /真的

console.log(号码。原型。__proto__。__proto__ = =对象的原型。__proto__); / /真的

console.log(对象的原型。__proto__ = null); / /真的

console.log(型号); / /功能

使用数字来转换日期对象

var a新的日期(1995年12月17日03:24:00 );

console.log(数(D));

四、空

NULL是一个Javascript文字,代表一个空值(NULL或空值),也就是说,没有对象被渲染(没有对象值存在),它是Javascript的原始值之一。

NULL是一个文字(而不是一个全局对象的属性,未定义的是)

console.log(空); / /空

console.log(定义); / /未定义

console.log(窗口。空); / /未定义

console.log(窗口。定义); / /未定义

null与未定义的区别
console.log(脚); / /捕获的referenceerror:脚未定义
变量Foo;
console.log(Foo); / /未定义
var bar = null;
console.log(酒吧); / /空
空 / /对象类型(虫在ECMAscript,应该为null)
类定义 / /未定义
空=未定义的/ false
NULL =未定义的/真的

因此,判断null,可以判断类型+值。

五、定义

在Javascript中,未定义词有多重含义。第一个字母未定义表示数据类型,小写未定义的值仅属于这种类型的数据。但这两个未定义的仅存在于文档或规范中,在Javascript代码中不存在于Javascript中。在代码中,可以看到未定义的是最有可能的全局对象属性之一,属性的初始值是以前定义的未定义的值,有一种情况是未定义的,这是一个局部变量,就像普通变量一样,没有任何特殊性,它的值不是未定义的,而是,通常。让我们说的定义,指的是window.undefined财产。

沙三段(在浏览器运用小记,window.undefined)是一种常见的属性,你可以改变它的值的任何真理的价值,但在ES5(在浏览器运用小记),window.undefined成为不写,非可配置的数据属性,其值是未定义的。

未初始化变量的值是未定义的。没有传入参数的参数的值是未定义的。如果函数不返回,则函数返回未定义。默认情况下。

可以使用严格的相等运算符来确定值是否未定义:
变量Foo;
console.log(foo =定义); / /真的
console.log(typeof foo = 'undefined / /真实);
console.log(window.foo =定义); / /真的
console.log(酒吧; / /捕获的= = =未定义)referenceerror:酒吧没有定义
console.log(typeof吧= 'undefined ' / /真实);
console.log(window.bar =定义); / /真的
console.log(typeof定义= = 'undefined '); / /真的
console.log(typeof null = = 'object '); / /真的
console.log(空= =不明) / /真实;
console.log(空=定义); / /假
总结

NULL的值是NULL,它代表一个空对象指针,不指向任何对象。

未定义的值是未定义的,表示变量或对象的属性未初始化。

未定义的值是从null派生的,因此对它们执行相等的测试将返回true。

值,布尔值,对象和字符串值的toString()方法,但为未定义的值没有这个方法

在大多数情况下,调用toString()方法没有传递参数。然而,当toString()的方法被调用时,参数可以通过:输出值的基数

var = 10;

警报((num.tostring)); / / 10

警报(num.tostring(2)); / / 1010

警报(num.tostring(8)); / / 12

警报(num.tostring(10)); / / 10

警报(num.tostring(16)); / /
如果您不知道要转换的值是null或未定义的,也可以使用转换函数String(),它可以将任何类型的值转换为字符串:

如果该值有一个toString()方法,该方法被称为(无参数)和相应的返回结果。

如果值为NULL,则返回null。

如果值未定义,则返回未定义。

六、对象

Javascript中的一切都是对象
对象
{ 1 } =类型:'object;
/ /使用array.isarray或object.prototype.tostring.call法可以将对象从基本类型数组
类{ 1, 2, 4 } = 'object;
种新的(日期)= 'object;
以下容易混淆,不要使用!
种新的布尔(真)= 'object;
类的新号码('object ' = 1);
种新的字符串(ABC)= 'object;
函数
Typeof(功能){ } = = = 'function;
Typeof Math.sin = 'function;
实例化一个空对象

新对象();

新对象(未定义);

新对象(null);

var;
原型

属性定义为__proto__:价值或__proto__ :价值,没有__proto__属性创建。如果给出的值是一个对象或一个null,那么{ } } {原型的对象设置为给定值。(如果给出的值不是一个对象或一个空,对象的原型是不会改变的。)
var obj1 = { };
断言(object.getprototypeof(obj1)=对象。原型);
var obj2 = {零} __proto__;
断言(object.getprototypeof(obj2)= null);
无功protoobj = { };
var OBJ3 = { {__proto__ :protoobj };
断言(object.getprototypeof(OBJ3)= protoobj);
无功obj4 = { { __proto__:不是一个对象或空} };
断言(object.getprototypeof(obj4)=对象。原型);
断言(!obj4.hasownproperty(__proto__ ));

在对象文字值中,只有一次机会更改原型一次;原型的多次更改将被视为语法错误

它不使用冒号属性的定义,而不会改变对象的原型;它是一个公共属性定义,就像其他名称不同的属性一样。
无功__proto__ =变量;
var obj1 = { __proto__ };
断言(object.getprototypeof(obj1)=对象。原型);
断言(obj1.hasownproperty(__proto__ ));
断言(obj1。__proto__ =变量);
var obj2 = { __proto__(){ return你好;} };
断言(obj2。__proto__)=(你好);
var OBJ3 = { { {__prot+o__}:17 };
断言(OBJ3。__proto__ = 17);
与JSON的区别

JSON只允许属性:属性定义为值语法的形式。属性名必须用双引号括起来。属性定义不允许使用简单的文字。

在JSON中,属性的值只允许字符串、数字、数组、true、false或任何其他JSON对象。

在JSON中,不允许将值设置为函数。

日期和其他对象,JSON.parse()处理后,将成为一个字符串。

JSON.parse()不处理计算的属性名称,并将其抛出的错误。

defineproperty
的object.defineproperty()方法定义了一种新的财产的直接对象,或修改现有的属性并返回对象
/ / __proto__
object.defineproperty(obj,
__proto__: / /空无继承的属性
价值:静 / /不可数
不可配置
不可写
作为默认值
});
/显式
object.defineproperty(obj,
枚举:假,
可配置:false,
可写的:false,
值:静态
});
相同的对象/恢复
功能价值(价值){
var a d(| |价值。
D = { {价值。
枚举:假,
可写的:false,
可配置:false,
价值:零
}
);
d.value =价值;
返回D;
}

object.defineproperty(obj,
如果可用冻结,则添加代码以防止
让 / /价值,集,枚举,可写,可配置
对象对象原型
(对象。冻| |对象(对象)。原型);
可配置的,如果且仅当属性描述符值为true时,属性可能会被更改或从相应的对象中删除。默认为false。

enumerabletrue当且仅当属性出现在相应的对象枚举属性,默认为false。

与值属性相关联的值。它可以是任何有效的Javascript值(值、对象、函数等)。默认值是未定义的。

可写真是当且仅当它可以用赋值操作符改变与属性关联的值时。默认为false。

访问描述符还具有下列可选键值:

获取一个方法来为属性提供吸气剂,如果没有一个未定义的,该方法返回作为属性使用的值。默认值是未定义的。

设置一个方法来提供属性的设置,如果没有未定义的设置。这个方法将一个新的值赋给属性作为唯一的参数。默认值是未定义的。

ps中的变量定义:js
在Javascript中,var用于定义任何类型的变量,而每个变量只是保存数据的占位符。
这个代码定义了一个变量,但是类型是未知的,可以保存任何类型的值,当测试存储在未定义时不会初始化。

var = 2;这个代码定义一个变量,直接初始化是数字。

这个代码定义了一个变量,直接初始化微字符串类型,单引号和双引号都可以,只要行对。
2。变量的范围
在Javascript中,使用var定义的变量,它的范围在定义变量的方法或函数中,也就是说,var定义的变量是一个局部变量。

例:
功能测试()

{

hello,Javascript!;

}
(测试);当执行变量被销毁后,方法调用变量被创建和初始化。

警报(临时); / / undefined.because变量temp已经被摧毁了,它没有定义(定义)。
如果在定义变量时不使用var,定义变量的变量是全局变量。
例:

test2()函数
{
你好,Javascript temp2 =!;
}
(一个); / /调用方法时创建变量并初始化,执行后仍存在变数。
警报(temp2); / /你好,Javascript!变量值仍然存在
上面的内容是Javascript中的数据类型的游览,这是介绍给您的。希望你能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部