数据类型
基本数据类型
1.基本数据类型
-number string boolean(原始类型)
-undefined null (特殊)
-symbol(es6)
2.typeof检测基本数据类型
typeof null //'object'
typeof fn() //'function' (应该是object)
3.undefined 与null的区别(都是空)
undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
null:表示空值,即此处的值为空。
-变量没有赋值——undefined
-一个对象object,暂时不想给值——null
一个非对象,暂时不想给值——undefined
// 函数没有返回值时,默认返回 undefined
function f() {}
f() // undefined
4.布尔值
转换规则:除了下面六个值被转为false,其他值都视为true。(falsy值)
-undefined
-null
-false
-0
-NaN
-""或''(空字符串)
对象
对象类型是合成类型,可分为三个子类型:
-对象object
-数组array
-函数function
对象——哈希表
1.删除一个key
-delete obj.name
'name' in person // false
obj.name //undefined
-obj.name = undefined
'name' in person //true
obj.name //undefined
2.for in 遍历
for(var key in obj){
console.log(key, person[key]) //打印出obj的所有键和值
}
var o3 = Object.create(Object.prototype); 可以创建一个对象
var o2 = new Object(); 可以创建一个对象
var obj = {
'3+3': 'A',
'6': 'B'
}
请问 obj[3+3] 的值为'B'
Object.keys(obj) 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in 循环遍历该对象时返回的顺序一致 。
var s1 = {}
var s2 = new object()
console.log(s1) //{}
console.log(s2) //{}
s1 === s2 //false 分别申明,地址不一样
类型转换
变string
1.toString()
null不可
undefined不可
2.+ ''
null + '' //'null'
undefined + '' //'undefined'
object + '' //{object object}
3.window.String()
null, undefined可
变boolean
1.boolean(null)
2.!!null
变number
1.Number()
2.parseInt('111', 10/进制)
parseInt('1s') //1
parseInt('s') //NaN
3.parseFloat()
- 'xxx' - 0
5.取正+ ‘xxx’ +'-1' //-1
网友评论