一般存在四种情况,JavaScript会对变量的数据类型进行转换。
目录
* if中的条件会被自动转为Boolean类型 * 会被转为false的数据 * 会被转为true的数据 * 参与+运算都会被隐式的转为字符串 * 会被转为空字符串的数据 * 会被转为字符串的数据 * 会被转为数据类型标记的数据 * 参与*运算都会被隐式的转为数字 * 会被转为0的数据 * 会被转为1的数据 * 会被转为NaN的数据 * == 运算符 * 为true的时候 * 为false的时候
if中的条件会被自动转为Boolean类型
会被转为false的数据
if(false) console.log(2333) if('') console.log(2333) if(null) console.log(2333) if(undefined) console.log(2333) if(NaN) console.log(2333)
会被转为true的数据
if(true) console.log(2333) // 2333 if('test') console.log(2333) // 2333 if([]) console.log(2333) // 2333 if({}) console.log(2333) // 2333
参与+运算都会被隐式的转为字符串
会被转为空字符串的数据
'str-' + '' // str- 'str-' + []
会被转为字符串的数据
'str-' + '1' // "str-1" 'str-' + 1 // "str-1" 'str-' + false // "str-false" 'str-' + true // "str-true" 'str-' + null // "str-null" 'str-' + undefined // "str-undefined" 'str-' + NaN // "str-NaN"
会被转为数据类型标记的数据
'str-' + {} // "str-[object Object]" 'str-' + {a:1} // "str-[object Object]"
参与*运算都会被隐式的转为数字
会被转为0的数据
2 * '' // 0 2 * [] // 0 2 * false // 0
会被转为1的数据
2 * '1' // 2 2 * [1] // 2 2 * true // 2
会被转为NaN的数据
2 * {} // NaN 2 * {a:1} // NaN
== 运算符
为true的时候
0 == false // true 0 == '' // true 0 == '0' // true 0 == [] // true 0 == [0] // true 1 == true // true 1 == '1' // true 1 == [1] // true [1] == true // true [] == false // true
为false的时候
0 == {} // false 0 == null // false 0 == undefined // false 0 == NaN // false 1 == {} // false 1 == null // false 1 == undefined // false 1 == NaN // false [] == [] // false [1] == [1] // false [1] == {} // false [1] == {a:1} // false [1] == false // false [1] == null // false [1] == undefined // false [1] == NaN // false {} == {} // false {a:1} == {a:1} // false
注:空数组[],在+运算符下是转为空字符串'',在*运算符下是转为数字0。但在if语句中,则转为true。
以上这篇对存在JavaScript隐式类型转换的四种情况的总结(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍总结Javascript中的隐式类型转换,包括了总结Javascript中的隐式类型转换的使用技巧和注意事项,需要的朋友参考一下 JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。object是引用类型,其它的五种是基本类型或者是原始类型。 比如像是Number() ,还是parseInt() 、pa
本文向大家介绍Javascript必知必会(四)js类型转换,包括了Javascript必知必会(四)js类型转换的使用技巧和注意事项,需要的朋友参考一下 string和number boolean javascript 类型会根据赋值的进行转成相应的类型。 这一种比较明显,一眼就可以计算出其值。但是请看下面这种转换 number 类型如果和string 类型"+", 将会直接numbe
本文向大家介绍JavaScript中数组的各种操作的总结(必看篇),包括了JavaScript中数组的各种操作的总结(必看篇)的使用技巧和注意事项,需要的朋友参考一下 js数组的新建,头插入,尾插入,头删除,尾删除,中间删除,删除多个,多个数组合并,数组倒序,数组截取等等,都有对应的例子。 声明一个数组 原来是如下声明: var s = new Array(); 但是 现在编辑器推荐使用如下声明:
本文向大家介绍JavaScript中的一些隐式转换和总结(推荐),包括了JavaScript中的一些隐式转换和总结(推荐)的使用技巧和注意事项,需要的朋友参考一下 js中的不同的数据类型之间的比较转换规则如下: 1. 对象和布尔值比较 对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字 2. 对象和字符串比较 对象和字符串进行比较时,对象转换为字符串,然后两者进行比
本文向大家介绍jquery对Json的各种遍历方法总结(必看篇),包括了jquery对Json的各种遍历方法总结(必看篇)的使用技巧和注意事项,需要的朋友参考一下 概述 JSON(javascript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript
本文向大家介绍JavaScript强制类型转换和隐式类型转换操作示例,包括了JavaScript强制类型转换和隐式类型转换操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript强制类型转换和隐式类型转换。分享给大家供大家参考,具体如下: 在JavaScript中声明变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。这些特征说明Ja