typeof输出值
string number object boolean undefined function
不可能是null
function fn(){}
alert(typeof fn)
\转义
alert("hello'wally'")
alert('hello\'wally\'')
console.log('hello \n world')
console.log('hello \\ world')
console.log('hello \" world')
toString()
转换成string类型,参数可以添加进制
var num=10
var bool=true
console.log(typeof num.toString())
console.log(num.toString(2))
console.log(num.toString(8))
console.log(num.toString(16))
console.log(num.toString())
Number
1.NaN
NaN:不是一个数字,,但是number类型
console.log(undefined+23)//NaN
console.log(typeof NaN)//number
跟谁都不相等 包括自己也不相等
console.log(123==123)//true
console.log(NaN==NaN)//false
isNaN()可以检测参数值是否为NaN
console.log(isNaN(undefined+23))//true
console.log(isNaN(23))//false
2.科学计数
console.log(3.1e10)
console.log(3e-2)
3.Infinity
console.log(3.1e100000)
console.log(-3.1e100000)
isFinite()可以检测是否超出范围
console.log(isFinite(3.1e2))//true
console.log(isFinite(3.1e100000))//false
4.Number()
将参数转换成number类型, 可以转换任意类型
console.log(typeof Number('123'))//number
console.log(Number(true))//1
console.log(Number(false))//0
console.log(Number('false'))//NaN
console.log(Number(''))//0
console.log(Number(undefined))//NaN
console.log(Number(null))//0
console.log(Number('08.970'))//8.97
5.parseInt(),parseFloat()
parseInt() 转换成整型
parseFloat() 转换成浮点型
只能转换字符串格式的数字
console.log(parseInt('123.056'))//123
console.log(parseFloat('123.23'))//123.23
console.log(parseInt(true))//NaN
6.精度问题与toFixed()
浮点数运算可能会有精度问题
toFixed() 参数 保留几位小数
console.log(0.1+0.2)//0.30000000000000004
console.log((0.1+0.2).toFixed(2))//0.30
Boolean
Boolean() 将参数转换成布尔值
- 字符串 -> 布尔型
空字符串 -> false - 数字 -> 布尔
0,NaN -> false - undefined -> false
- null -> false
var a;
console.log(Boolean(123))//true
console.log(Boolean('123'))//true
console.log(Boolean(''))//false
console.log(Boolean(a))//false
console.log(Boolean(0))//false
console.log(Boolean(NaN))//false
console.log(Boolean(3e10000))//true
console.log(Boolean(null))//false
Object
数组(列表) Array
对象(字典) Object
1.Array数组
length属性: 数组包含元素的个数
索引(下标): 数组[索引] 获取对应位置的元素 索引从0开始
var arr=['123',250,true,['wally','age',17]]
console.log(arr[0])//123
console.log(arr[3])//["wally","age",17]
console.log(arr[3][0])//wally
console.log(arr.length)//4
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
var arr1=new Array(4)
console.log(arr1)
var arr2=new Array(1,2,3,4)//[1,2,3,4]
console.log(arr2)
console.log(typeof arr)//object
Object
由一组或多组键值对组成,键值对用:链接,每一组值之间用,分割
获取键对应的值: 对象.键名 或 对象[‘键名’]
键名一般使用字符串,键值可以是任意数据类型
var obj={
name:'wally',
age:17,
sex:'man',
favs:['篮球','足球','排球'],
lesson:{
id:123,
name:'web'
}
run:function(){
alert('running')
}
}
console.log(obj.name)//wally
console.log(obj.favs)//["篮球","足球","排球"]
for(var i=0;i<obj.favs.length;i++){
console.log(obj.favs[i])
}
console.log(obj.lesson.id)//123
obj.run()