尽管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中的数据类型的游览,这是
介绍给您的。希望你能喜欢。