js中的小细节~

1. js中null undefined “” false 0的区别
null undefined "" false 0所属什么类型
console.log(typeof null);//object
console.log(typeof undefined);//undefined
console.log(typeof "");//string
console.log(typeof 0);//number
console.log(typeof false);//boolean
共同点:
  • 在if语句中做判断,都会执行false分支。当然从广义上来看,是说明这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true
不同点
  • ''==0==false
  • undefined==null
  • 10+null结果为10
  • 10+undefined结果为NAN
  • null的类型是object,但是null不具有任何对象的特性,就是说我们并不能执行null.toString()null.constructor等对象实例的默认调用
  • “”、0和false虽然在if语句表现为"假值",可它们都是有意义数据,只是被作为了"空值"或"假值",因为:"".toString()(0).toString()false.toString()都是合法的可执行表达式
  • NaN也可以近似看做是一个空值或假值,因为任何类型的值与NAN做比较得到的都是false,包括NAN本身typeof NaNnumber
alert(0 == ''); //true
alert(0 == false); //true
alert(false == ''); //true
alert(null == undefined); //true

alert(!0); //true
alert(!false); //true
alert(!undefined); //true
alert(!null); //true
alert(!''); //true

alert(0 == undefined); //false
alert(0 == null); //false
alert(false == null); //false
alert(false == undefined);//false
alert('' == null); //false
alert('' == undefined); //false
2. js数值和字符串之间的运算
  • 数值和字符串做加法,数值被转换为字符串
  • 数值和字符串做减法、乘法、除法,字符串被转换为数字,如果字符串无法转化为数字,则与数字的运算结果为NaN
3. typeofinstanceof
typeof
  • typeof运算符返回一个用来表示表达式的数据类型的字符串
  • typeof一般返回以下几个字符串:"number", "string","boolean","object","function","undefined"。对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。
  • 可以用typeof(变量名)来检测该变量是否声明(或是否存在),如果返回值为undefined则代表该值未声明或不存在。
  • 一般只会返回以上几个字符串,不能追溯原型链的对象。
instanceof
  • instanceof用来检测某个对象是不是另一个对象的实例。
  • 一个对象在其原型链中是否存在一个构造函数prototype属性
  • 可追溯到原型链上的对象
4. parseIndex(str,radix)
  • 该方法用户将字符串转换成整数并返回
  • radix参数可选。表示要解析的数字的基数。该值介于 2 ~ 36之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值