数据类型
var a= "qwe";
var b=123;
var c= null;
var d=false;
var e=new Date();
function z(){};
console.log(typeof a);//string
console.log(typeof b);//number
console.log(typeof c);//object
console.log(typeof d);//boolean
console.log(typeof e);//object
console.log(typeof f);//undefined
console.log(typeof z);//function
- 如果未定义,typeof x是undefined,但console.log(x)则报错
- null虽然属于object但他和undefined是相等的
console.log(null==undefined);//true
console.log(null===undefined) //false
- 任何值都能转换成Boolean值,这对if("123")很有参考的价值
console.log(Boolean("togeek"));//true
console.log(Boolean(""));//false
console.log(Boolean(false));//true
console.log(Boolean(123));//true
console.log(Boolean(0));//false
console.log(Boolean(NaN));//false
console.log(Boolean(null));//false
console.log(Boolean(new Date()));//true
console.log(Boolean(undefined));//false
```
- NaN
- Nan和任何值都不等,包括NaN==NaN
```
console.log(isNaN(NaN));//true
console.log(isNaN(10));//false
console.log(isNaN("10"));//false 可以转换成10
console.log(isNaN("blue"));//true 不可以
console.log(isNaN(true));//false
```
- Number数字处理
- Number()函数
```
console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(10));//10
console.log(Number(null));//0
console.log(Number(undefined));//NaN
console.log(Number("123"));//123
console.log(Number("0123"));//123 ,前导0去掉
console.log(Number("0xf"));//15 十六进制转成十进制
console.log(Number(""));//0
console.log(Number("w3"));//NaN,其他字符都转成NaN
```
- parseInt()函数
```
console.log(parseInt("1234abc22"));//1234 一个一个对比字符,知道遇到非数字
console.log(parseInt(""));//NaN
console.log(parseInt("0xA"));//10 十六进制
console.log(parseInt("22.5"));//22 一个一个对比字符,知道遇到非数字
console.log(parseInt("070"));//70 浏览器会有不同的处理,任务是0/八进制少用
console.log(parseInt("70"));//70
```
- 为了明确,可以这样使用
```
console.log(parseInt("070",8));//56 八进制
console.log(parseInt("0xA",16));//10 十六进制
console.log(parseInt("A",16));//10 十六进制
```
- 不同的进制
```
console.log(parseInt("10",2));//2
console.log(parseInt("10",8));//8
console.log(parseInt("10",10));//10
console.log(parseInt("10",16));//16
```
- parseFloat()函数,它只有十进制
```
console.log(parseFloat("1234abc"));//1234 整数
console.log(parseFloat("0xA"));//0
console.log(parseFloat("22.5"));//22.5
console.log(parseFloat("22.5.4"));//22.5
console.log(parseFloat("0908.5"));//908.5
console.log(parseFloat("3.125e7"));//31250000
```
- String处理
- 转义字符
```
\n 换行
\t 制表
\b 空格
\r 回车
\f 走纸换页
\\ 斜杠
\' 单引号
\" 双引号
\x41 十六进制,这个代表字母A
\u03a3 unicode字符
```
```
var x16="\x41";
var uni="\u9ad8\u7a0b" //高程的unicode
console.log(x16);//A
console.log(x16.length);//1 ,长度为转义后的长度
console.log(uni);//高程
console.log(uni.length);//2 ,长度为转义后的长度
```
- toString()方法
null,undefined没有toString方法
```
var num=10;
console.log(num.toString());//10
console.log(num.toString(2));//1010 进制转换
console.log(num.toString(8));//12
console.log(num.toString(10));//10
console.log(num.toString(16));//a
```
- String()方法
```
var unde;
console.log(String(10));//"10"
console.log(String(true));//"true"
console.log(String(null));//"null"
console.log(String(unde));//"undefined"
```
- Object对象 略