Javascript中的六种数据类型及特殊注意事项

js中常见的六种数据类型:string类型、null类型、数字类型、布尔类型、对象类型。

1,关注类的点

当涉及到数据类型,它不可避免的要提到算子类。注意:

1类是运营商,不是一个方法。虽然我们经常使用typeof()方法来获得对象的数据类型。

2。以类为Null对象(这是因为零是一个空对象引用),和类型的函数的函数。

复制代码代码如下所示:
警报(typeof null); / /返回对象
函数演示(){
警报('demo);
}
警报(typeof演示); / /返回功能


2。为各种数据类型的对象变量设置初始值

请注意,如果对象类型的对象变量不知道分配给赋值的是什么,请不要使用var = { };最好设置为null;

复制代码代码如下所示:
var = null;
D2 = {关键:狗屎};

默认值为
var = 0;初始值被设置为0。
VaR D5 = null; / /对象类型设置初始默认值


3、未定义和空之间的差异和注意事项

1,如果与=比较,它们是相等的,因为值是

2。有两种方法可以区分它们(它们的核心是数据类型的比较)

1)使用typeof分开

2)使用:比较是一致的=值和数据类型,只返回true相同。

复制代码代码如下所示:
警报(未定义的= NULL)
警报(typeof定义= = typeof null; / /假)
警报(未定义为NULL)


4,布尔的注意点

1、真和1是相同的,false和0是相同的(=比较),因为内部将转换数据类型,将真值转换为1,false将被转换为0。js内部自动转换各种数据类型,这是我们必须注意的。后面会有很多提及。但是不要使用等于,因为它们的数据类型是不同的。

2,将显示转换为布尔,并用布尔()方法显示转换。我们需要注意各种数据类型以及何时将其变为false。

1)字符串类型,只要没有空字符串将被转换为true。

2)数字类型,只要不是0,甚至是负数,都会转换成真的。

3)对象类型,只要不是null类型,它将被转换为true。

4)未定义类型,所有转换为false

我不会做演示,你可以自己试试看。

3,(***)如果()语句()是对布尔函数的调用

5,数字类型注意点

1、浮子式不能做精确操作。

复制代码代码如下所示:
警报(0.1 + 0.2); / /返回0.300000000000000004


2。支持科学计数法的操作

3,楠(不是数字)

1)var = 0 0;注意:在js中,它将不是false,而是返回到南方

2)可以通过number.nan

3)楠和任何对象操作将返回到南方。

4)isnan()判断是不是南

复制代码代码如下所示:
警报(isnan(南)); / /真的
警报(isnan(12)); / /假
警报(isnan('123 ')); / /假:可以自动转换为数字,因为数字字符串类型
警报(isnan('lew ')); / /真的
警报(isnan(假)); / /(*)假:因为bool值可以转换成数字,真的假的,1,0


5)对isnan内部执行原则():适用于相同的对象。实现原理:总理称值()的对象的方法,如果它可以被转换为数字,它会作出直接的判断;如果不能,它将调用toString()方法了,然后测试返回值。

valueOf()内部调用对象()方法,对两种方法的内部执行原则:如下图:



复制代码代码如下所示:
变量框= {
箱toString(对象 / /重写方法)
说明:函数(){
返回'123;
}
};
警报(isnan(箱)); / /假
警报(箱); / / 123警惕内部()也是该对象的值的第一个调用toString()和()方法


6)将其他数据类型转换为数字类型

有三个功能:数():它可以被转换为所有数据类型;parseInt()和parseFloat()只能转换为字符串。

复制代码代码如下所示:
警报(编号('123 ')); / / 123
警报(编号('0234 ')); / / 234
警报(数字(true));1
警报(数字(NULL));(0 **)

除以上之外,另一个是返回南方。
警报(编号(未定义))


数()的内部实现原理:当isnan相同()首先调用值()然后调用toString(),所以可想而知,性能相对较差。所以叫parseInt()或parseFloat()因为他们没有判断型的人,如果是要转换对象是一个字符串。

ParseInt()和parseFloat()注意:从第一个数字字符的第一部分的第一个数字字符串转换为数字。

复制代码代码如下所示:
警报(parseInt('123leb ')); / / 123
警报(parseInt('123leb345 ')); / / 123
警报(parseInt('len234 ')); / /南


当参数在parseInt()是浮球式,得到的数字的整数部分

复制代码代码如下所示:
警报(parseInt(56.12)); / / 56


6,字符串类型

1)(*重要*)在ECMAscript字符串不变性:字符串之后不会改变字符串创建。

要更改已分配的字符串变量,我们首先销毁变量中的字符串,然后用包含新值的字符串填充变量。

复制代码代码如下所示:
var a你好;
D = D + 'shit '; / /实施过程:第一a'hello'assignment,然后清除字符串中的D弦,你好和屎的马赛克,然后分配到D变量。(这样一个字符串的值不会一旦建立其变化)


2)ToString()方法将其他数据类型转换为字符串类型。但如果你操作无效或未定义,你犯了一个错误。

3)但字符串()方法可以达到效果,但是toString()可以对空和未定义操作。

内部原理:toString()被称为第一,如果它可以被转换为一个字符串,返回的结果是直接。不,然后判断是否为空或未定义,然后返回到空或未定义

总结:如果我们知道变量不能是空的或不确定的,我们使用toString()的性能比字符串(),因为字符串()已做出判断内部,因此有损性能。