JavaScript系列——数据类型 语法
区分大小写 ECMAScript 中的一切(变量、函数名和操作符)都区分大小写
标识符 所谓标识符,就是指变量、函数、属性的名字,或者函数的参数: a.第一个字符必须是一个字母、下划线(_)或一个美元符号($) b.其他字符可以是字母、下划线、美元符号或数字
严格模式 ECMAScript 5 引入了严格模式(strict-mode),可以在脚本的顶部加入,也可以在函数的内部加入。
1 2 3 4 5 "use strict" ;function doSomething () { "use strict" ;}
变量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var message; var maeesage = 'hello' ;message = 100 ; function test () { var msg = "hi" ; } test(); alert(msg); var message = "hi" , found = false , age = 29 ;
数据类型 ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number 和 String;还有 1 种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。
typeof操作符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 "undefined" ——如果这个值未定义"boolean" ——如果这个值是布尔值"string" ——如果这个值是字符串"number" ——如果这个值是数值"object" ——如果这个值是对象 或 null ,null 也是object"function" ——如果这个值是函数var message; alert(typeof message); alert(age); alert(typeof age); alert(null == undefined );
Boolean类型 true 不一定等于 1,而 false 也不一定等于 0。
数据类型
转化为true
转化为false
Boolean
true
false
String
任何非空字符串
“”(空字符串)
Number
任何非零数字值(包括无穷大)
0和NaN
Object
非null对象
null
Undefined
—
undefined
Number类型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 var intNum = 55 ; var octalNum1 = 070 ; var octalNum2 = 079 ; var octalNum3 = 08 ; var hexNum1 = 0xA ; var hexNum2 = 0x1f ; var floatNum1 = 1.1 ; var floatNum2 = 0.1 ; var floatNum3 = .1 ; var floatNum1 = 1. ; var floatNum2 = 10.0 ; var floatNum = 3.125e7 ; var a = 0.1 var b = 0.2 if (a + b == 0.3 ){ alert("You got 0.3." ); } var result = Number .MAX_VALUE + Number .MAX_VALUE; alert(isFinite (result)); alert(NaN == NaN ); alert(isNaN (NaN )); alert(isNaN (10 )); alert(isNaN ("10" )); alert(isNaN ("blue" )); alert(isNaN (true ));
数值转化 1 2 3 4 5 6 7 8 var num1 = Number ("Hello world!" ); var num2 = Number ("" ); var num3 = Number ("000011" ); var num4 = Number (true ); var num5 = Number (null ); var num6 = Number (undefined ); var num7 = Number (1.2 ); var num8 = Number (0xf );
如果是对象,则调用对象的 valueOf()方法,然后依照前面的规则转换返回的值。如果转换 的结果是 NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的字符 串值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var num1 = parseInt ("1234blue" ); var num2 = parseInt ("" ); var num3 = parseInt ("0xA" ); var num4 = parseInt (22.5 ); var num5 = parseInt ("070" ); var num6 = parseInt ("70" ); var num7 = parseInt ("0xf" ); var num = parseInt ("070" ); var num = parseInt ("0xAF" , 16 ); var num1 = parseInt ("AF" , 16 ); var num2 = parseInt ("AF" ); var num1 = parseInt ("10" , 2 ); var num2 = parseInt ("10" , 8 ); var num3 = parseInt ("10" , 10 ); var num4 = parseInt ("10" , 16 );
与 parseInt()函数类似,parseFloat()也是从第一个字符(位置 0)开始解析每个字符。而且 也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止.1 2 3 4 5 6 var num1 = parseFloat ("1234blue" ); var num2 = parseFloat ("0xA" ); var num3 = parseFloat ("22.5" ); var num4 = parseFloat ("22.34.5" ); var num5 = parseFloat ("0908.5" ); var num6 = parseFloat ("3.125e7" );
String类型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 var age = 11 ; var ageAsString = age.toString(); var found = true ; var foundAsString = found.toString(); var num = 10 ; alert(num.toString()); alert(num.toString(2 )); alert(num.toString(8 )); alert(num.toString(10 )); alert(num.toString(16 )); var value1 = 10 ; var value2 = true ; var value3 = null ; var value4; alert(String (value1)); alert(String (value2)); alert(String (value3)); alert(String (value4));
Object类型 1 2 3 4 5 6 7 8 9 10 var o = new Object (); var o = new Object ;