手机版

谈javascript的六种数据类型及特别注意事项

时间:2021-11-12 来源:互联网 编辑:宝哥软件园 浏览:

js中有六种常见的数据类型:字符串类型、空类型、数字类型、布尔类型和对象类型。1.typeof的注意涉及到数据类型,因此不可避免地要提到运算符typeof。注:1。typeof是运算符,而不是方法。虽然我们经常使用typeof()来获取对象的数据类型。2.将typeof作为null的对象(这是因为null是空的对象引用),将typeof作为函数。复制代码如下:alert(类型为null);//返回对象函数demo(){ alert(' demo ');}alert(演示类型);//返回功能2。为各种数据类型的对象变量设置初始值。注意,如果对象类型的对象变量一开始不知道赋值什么,不要vardemo={ };最好将其设置为null;复制代码如下:var d2=nullD2={ ' key ' : ' shit ' };var d3=//字符串的默认var D4=0;//Number类型的初始值设置为0var d5=null//设置对象类型的初始默认值。3.undefined和null之间的区别和注意事项。1.如果使用“==”进行比较,它们是相等的,因为值是比较的。2.有两种方法来区分它们(它们的核心是比较它们的数据类型)。1)使用typeof来区分它们。2)使用同余“===”:比较值和数据类型。只有当它们都一样的时候,还真。复制代码如下:alert(undefined==null)。//true alert(type of undefined==type of null);//false alert(undefined===null);//true4、Boolean的注意点是1、true和1相同,false和0相同("=="比较),因为数据类型会在内部转换,true会转换成1,false会转换成0.js,里面有很多数据类型的自动转换,大家一定要注意。后面还会提到更多。但是使用“===”是不相等的,因为它们的数据类型不相等。2.显示转换为布尔型,转换使用布尔()方法显示。需要注意各种数据类型,什么时候转换为真,什么时候转换为假1)String类型,只要不为空,就会转换为真2)Number类型,只要不为0,即使为负,也会转换为真3)Object类型,只要不是null类型,就会转换为真4)Undefined类型,会转换为假。我不做示范,你可以自己试试。3.(* *)布尔函数在if()语句的()内部调用。5.数字类型的注释。1.无法精确计算浮点类型。复制代码如下: alert(0.10.2);//返回0.30000000000000042,支持科学计数操作3、NaN(Not a Number)1)var d=0/0;注意:在js中,您不会报告错误,而是返回NaN。2)可以通过Number获取。NaN 3)如果用任何对象做一个操作,都会返回NaN。4) Isnan()确定是不是nan。复制代码如下: alert(ISnan(NAn));//true alert(ISnan(12));//false alert(ISnan(' 123 ');//false:因为字符串类型的数字可以自动转换为数字alert(isNaN(' Lew '));//true alert(ISnan(false));//(*)false:因为bool值可以转换为数字,true更改为1,false更改为05)isNaN()内部执行原理:它也适用于对象。实现原理:总理调用对象的valueOf()方法,直接判断是否可以转换成数字;如果没有,请再次调用toString()方法,然后测试返回值。方法toObject()在valueOf()内部调用,两种方法内部执行的原理如下:

复制的代码如下:var box={ //重写box对象的toString()方法toString 3360 function(){ return ' 123 ';} };警报(isNaN(方框));//falsealert(方框);//123 alert()也是先调用对象的valueOf(),再调用toString()方法。6)将其他数据类型转换为Number类型有三种功能:Number():可以转换所有数据类型;ParseInt()和parseFloat()只转换字符串。复制代码如下:alert(数字(' 123 '));//123 alert(Number(' 0234 '));//234 alert(Number(true));//1 alert(Number(null));//(*)0//除了上面的,就是返回nanalert(number(undefined))//nannumber():和isNaN()一样,就是先调用valueOf()再调用toString()。因此,可以想见,性能相对较差。因此,只要要转换的对象是字符串,就会调用parseInt()或parseFloat(),因为它们不需要在内部判断类型。parsit()和parseFloat()调用注意:字符串中从第一个数字字符到第一个数字字符的前一个数字的这一部分被转换成数字。复制代码如下: alert(parsent(' 123 leb '));//123 alert(ParSeint(' 123 leb 345 '));//123 alert(ParSeint(' len 234 '));//NaN当parseInt()中的参数为浮点类型时,只获得数字的整数部分。复制代码如下: alert(parsent(56.12));//566,字符串类型1)(*重要*)在ECMAScript中,字符串是不变的:它们在创建后不会改变。要更改分配的字符串变量,首先销毁变量中的字符串,然后用包含新值的字符串填充变量。复制的代码如下:var d=' hellod=d狗屎’;//执行过程:先赋值一个“hello”的副本,然后清空d中的字符串,拼接字符串“hello”和“狗屎”,再赋值给d变量。(因此字符串的值在创建后不会改变。)2)2)toString()方法将其他数据类型转换为字符串类型。但是,如果您对null或未定义进行操作,您将报告一个错误。3)但是String()方法也可以达到toString()的效果,但是可以对null和undefined进行操作。内部原理:首先调用toString(),如果可以转换成字符串,直接返回结果。不会,再次判断是null还是undefined,然后返回一个‘null’或者‘undefined’的总结:如果知道变量不能为null或者undefined,那么使用toString()比String()性能更好,因为String()要进行内部判断,所以会失去性能。

版权声明:谈javascript的六种数据类型及特别注意事项是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。