javascript

js是弱类型语言
弱类型:在定义数据的时候不需要对类型进行限制,允许不同类型的数据进行运算。缺点:代码的健壮性比较低,另外执行效率也比较低。优点:操作方便,动态语言
强类型:在定义数据的时候需要对类型进行限制,不允许不同类型数据间的运算。缺点:只能和兼容类型进行运算和操作。优点:执行效率高

JS中有哪些场景会出现隐式类型转换?
1.一元操作符
递增(++) 递减(--)操作符:在应用于字符串,布尔值,对象时会隐式的将其转换为数字值。
一元加(+) 一元减 (-)操作符:对非数值应用时,会调用Number()进行转换。
2.布尔操作符
逻辑非(!):隐式转换为布尔值再求反。
逻辑与(&&) 逻辑或(||):短路操作,当操作数不是布尔值时会进行隐式转换。
3.乘性操作符
乘法,除法,求模:对非数值应用时,会调用Number()进行转换。
4.加法减法操作符
加法:当有一个操作数是字符串,对另一个隐式转化为字符串后执行字符串拼接。
减法:对非数值应用时,会调用Number()进行转换。
5.关系操作符
小于(<) 大于(>) 小于等于(<=) 大于等于(>=) 等于 (==) :对非数值应用时,会转换成数值比较。如果两个字符串进行比较会比较字符串对应的字符编码值。
6.流控制语句:if() while() for-in :将条件隐式转换为布尔值,
7. .语句之前的内容 :会被转换为对象,基本类型会转换为相应的包装类型。

JS中有哪些识别类型的方法(包括用于识别某种具体类型的方法)

typeof

exp: typeof 12; //”number”
typeof 是操作符
可以识别标准类型(null除外)
不能识别具体的对象类型(Function除外)

instanceof

exp: /\d/ instanceof RegExp; //true
不能判别原始类型
判别所有对象类型

Object.prototype.toString.call

常封装成 function type(obj){
return Object.prototype.toString.call(obj).slice(8,-1);
}
可识别标准类型及内置对象类型
不能识别自定对象类型


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值