var asd1 = 'have a nice day' //string
var asd2 = 20 //number
var asd3 = new Date() //object
var asd4 = ['1','3','4'] //object
var asd5 = true //boolean
复制代码
typeof undefined //undefined
typeof null //object
typeof ['1','2','3'] //object
typeof {asd:'sssss'} //object复制代码
typeof 未定义值 // undefined
typeof 未初始化值 // undefined复制代码
var a = [1,2]
var b = {'a':'asss'}
alert( a instanceof Array) // true
alert( b instanceof Object) // true 复制代码
var arr = [2,4,6];
var bcc = arr;//传址 ,对象中传给变量的数据是引用类型的,会存储在堆中;
var cxx = arr[0];//传值,把对象中的属性/数组中的数组项赋值给变量,这时变量C是基本数据类型,存储在栈内存中;改变栈中的数据不会影响堆中的数据
alert(bcc);//2,4,6
alert(cxx);//2
//改变数值
bcc[1] = 6;
cxx = 7;
alert(arr[2]);//6
alert(arr[0]);//2
复制代码
"" == "0" // false
0 == "" // true
0 == "0" // true
false == "false" // false
false == "0" // true
false == undefined // false
false == null // false
null == undefined // true
" \t\r\n" == 0 // true
复制代码
由于在强制类型转换的时候规则比较复杂,因此说使用 == 是一个很差的编程习惯,也会带来性能消耗。
javascript
=== 全等操做符html
不会进行强制类型转换,前端
"" === "0" // false
0 === "" // false
0 === "0" // false
false === "false" // false
false === "0" // false
false === undefined // false
false === null // false
null === undefined // false
" \t\r\n" === 0 // false
复制代码
因此推荐使用 === 操做符
java
因此已经使用了 === 操做符,可是仍是会产生不少问题,那么否则咱们本身进行类型转换。git
转换为 字符类型: 将一个值加上空字符串能够轻松转换为字符串类型github
'' + 10 === '10'; // true
复制代码
转换为 数字类型: 使用一元的加号操做符,能够把字符串转换为数字。
正则表达式
+'10' === 10; // true
复制代码
转换为布尔值: 经过使用 否 操做符两次,能够把一个值转换为布尔型
编程
!!'foo'; // true
!!''; // false
!!'0'; // true
!!'1'; // true
!!'-1' // true
!!{}; // true
!!true; // true复制代码
参考:bonsaiden.github.io/JavaScript-…
数组
关注我获取更多前端资源和经验分享 关注后回复 vivi 获取个人微信号,望不吝赐教,pps:可轻撩哈哈 浏览器
感谢大佬们阅读,但愿你们头发浓密,睡眠良好,情绪稳定,早日实现财富自由~