Javascript进阶---对象类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript进阶---对象类型相关的知识,希望对你有一定的参考价值。
javascript进阶(2)---对象类型
Javascript原始对象类型(6种):
- (数据类型)number、string、boolean、function、undefined
- (对象类型)object(null、{}、Array、Date、RegExp...)
关于NaN
- NaN是一个特殊的number类型,它与任何数值都不相等,也包括他自己
- typeof(NaN)的值为number
隐式转换
1 var x = "66H34TYY" + 42 ; 2 var y = 42 + "hahaha"; 3 "37" + 37
以上三种 “+” 号都理解为字符串拼接,返回的都是一个string类型数据
1 var result = "37" - 7
这里的 “-” 号却理解为 减法
//设car为null 1 car - 0 //car 减去 0 2 car + “” //car加上空字符串
可利用这两种办法,巧妙地把car(做减法)变为number或者(做加法)变为string
显式转换
var num=Number(‘123‘); //将字符串‘123’转换为number console.log(num+"是"+typeof(num)+"类型"); //123是number类型 var boo=Boolean(‘false‘); //将字符串‘false’转换为boolean console.log(boo+"是"+typeof(boo)+"类型"); //true是boolean类型 //注意此处只要Boolean()转换的内容不为null或者“”,则肯定返回true var str=String(123.56); //将字符串‘123’转换为string console.log(str+"是"+typeof(str)+"类型"); //123.56是string类型
- 注意转换后的结果数据的类型是相应的number、string、boolean
一些特殊的值
null == undefined; //返回true null === undefined; //返回false
typeof(null) === "object" ; //返回true,因为历史原因
包装对象
var num = new Number(123); typeof(num); //返回"object" var boo = new Boolean(true); typeof(boo); //返回"object" var str = new String(‘str‘); typeof(str); //返回"object"
- 生成的包装类的值与不使用包装类创建的值相等
- 但使用包装类创建的类型皆为“object”
只有对象类型才能够有属性
- 是object类型的数据
- 使用包装类创建的对象
var arr=[]; //[]属于object类型 arr.t=3; console.log(arr.t); //绑定的属性t能够正常访问 var obj={}; //{}属于object类型 obj.t=3; console.log(obj.t); //绑定的属性t能够正常访问 var str_obj=new String("aaaaaa");//str_obj是使用包装类创建的string,属于object类型 str_obj.t="obj_prop"; console.log(str_obj.t); //绑定的属性也能够正常的输出 var str="aaaaa"; //str属于string类型(注意这里没有使用包装类创建) str.t=3; //这里给str帮顶一个临时属性 console.log(str.t); //在后面这里就访问不到,返回undefined console.log(str.length) //string类型的一个特殊属性是length,可以访问 var num=123; //num属于number类型(注意这里没有使用包装类创建) num.t=3; //这里给num帮顶一个临时属性 console.log(num.t); //在后面这里就访问不到,返回undefined
类型检测
instanceof
运算符用来测试一个对象在其原型链构造函数上是否具有prototype属性。
instanceof
运算符用来检测 constructor.prototype
是否存在于参数 object
的原型链上。
语法: object instanceof constructor
[1,2] instanceof Array === true; new Object() isntanceof Array === false ;
(注意:instanceof 在跨 iframe 的时候不可以使用 ,相当于两个窗口下的对象)
typeof操作符返回一个字符串,
指示未经
计算的操作数的类型
- typeof可以一次准确判断出“number”、"boolean"、“string”、“undefined”、“function”
- Array需要使用 isArray()方法去判断
- 其他情况的一些检测
- 在if()判断语句中不需要将对象转换为boolean
- 除了null与undefined,其他的对象都有toString()方法,将该对象转化为string
- number类型对象调用toString()方法时,需要用()将自己括起来活着使用双点号
-
console.log((123).toString()); //‘123‘ console.log(123..toString()); //‘123‘
- 判断对象“null”,需要使用 obj === null ,"全等号"的形式
以上是关于Javascript进阶---对象类型的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象
VSCode自定义代码片段12——JavaScript的Promise对象
JavaScript-进阶详解数据类型,内存分配,API元素对象获取
我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段
我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段