超大或超小的数值可以用科学计数法来写
var y = 123e5; // 12300000
var z = 123e-5; // 0.00123
5.布尔值只有两个值:true 或 false
6. JavaScript 数组用方括号书写。数组的项目由逗号分隔。
var cars = [“Porsche”, “Volvo”, “BMW”];
7.JavaScript 对象用花括号来书写。对象属性是 name:value 对,由逗号分隔
var person = {firstName:“Bill”, lastName:“Gates”, age:62, eyeColor:“blue”};
8 Undefined 与 null 的值相等,但类型不相等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
9.typeof
typeof “Bill” // 返回 “string”
typeof 3.14 // 返回 “number”
typeof true // 返回 “boolean”
typeof false // 返回 “boolean”
typeof x // 返回 “undefined” (假如 x 没有值)
typeof {name:‘Bill’, age:62} // 返回 “object”
typeof [1,2,3,4] // 返回 “object” (并非 “array”,typeof 运算符把数组返回为 “object”,因为在 JavaScript 中数组即对象。
typeof null // 返回 “object”
typeof function myFunc(){} // 返回 “function”
10.字符字面量
11.类型转换
转换成字符串: toString() 方法
转换成数字: parseInt() 和 parseFloat()
12. toString()
Boolean 类型的 toString() 方法只是输出 “true” 或 “false”,结果由变量的值决定
Number 类型的 toString() 方法比较特殊,它有两种模式,即默认模式和基模式。采用默认模式,toString() 方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学计数法)基只是要转换成的基数的另一种加法而已,它是 toString() 方法的参数:
var iNum = 10;
alert(iNum.toString(2)); //输出 “1010”
alert(iNum.toString(8)); //输出 “12”
alert(iNum.toString(16)); //输出 “A”
13 parseInt()
var iNum1 = parseInt(“12345red”); //返回 12345
var iNum1 = parseInt(“0xA”); //返回 10
var iNum1 = parseInt(“56.9”); //返回 56
var iNum1 = parseInt(“red”); //返回 NaN
其他进制
var iNum1 = parseInt(“AF”, 16); //返回 175
var iNum1 = parseInt(“10”, 2); //返回 2
var iNum2 = parseInt(“10”, 8); //返回 8
var iNum3 = parseInt(“10”, 10); //返回 10
14.parseFloat()
var fNum1 = parseFloat(“12345red”); //返回 12345
var fNum2 = parseFloat(“0xA”); //返回 NaN
var fNum3 = parseFloat(“11.2”); //返回 11.2
var fNum4 = parseFloat(“11.22.33”); //返回 11.22
var fNum5 = parseFloat(“0102”); //返回 102
var fNum1 = parseFloat(“red”); //返回 NaN
15.强制类型转换
Boolean(value) - 把给定的值转换成 Boolean 型;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
String(value) - 把给定的值转换成字符串;
16.引用类型
引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象
对象是由 new 运算符加上要实例化的对象的名字创建的。例如,下面的代码创建 Object 对象的实例:var o = new Object();//当没有参数,括号可以省略
17.Boolean 对象
Boolean 对象是 Boolean 原始类型的引用类型。
要创建 Boolean 对象,只需要传递 Boolean 值作为参数
var oBooleanObject = new Boolean(true);
var oBooleanObject = new Boolean(false);
这两种oBooleanObject都是默认true
18.Number对象
正如你可能想到的,Number 对象是 Number 原始类型的引用类型。要创建 Number 对象,采用下列代码:
var oNumberObject = new Number(68);
(1)取值:要得到数字对象的 Number 原始值,只需要使用 valueOf() 方法:
var iNumber = oNumberObject.valueOf();
(2)小数位数:toFixed() 方法返回的是具有指定位数小数的数字的字符串表示。例如:
var oNumberObject = new Number(68);
alert(oNumberObject.toFixed(2)); //输出 “68.00”
(3)科学计数法:与格式化数字相关的另一个方法是 toExponential(),它返回的是用科学计数法表示的数字的字符串形式。与 toFixed() 方法相似,toExponential() 方法也有一个参数,指定要输出的小数的位数。例如:
var oNumberObject = new Number(68);
alert(oNumberObject.toExponential(1)); //输出 “6.8e+1”
(4)有效位数:toPrecision() 方法根据最有意义的形式来返回数字的预定形式或指数形式。它有一个参数,即用于表示数的数字总数(不包括指数)。例如,
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(1)); //输出 “7e+1”
这段代码的任务是用一位数字表示数字 68,结果为 “7e+1”,以另外的形式表示即 70。的确,toPrecision() 方法会对数进行舍入。不过,如果用 2 位数字表示 68,就容易多了:
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(2)); //输出 “68”
当然,输出的是 “68”,因为这正是该数的准确表示。不过,如果指定的位数多于需要的位数又如何呢?
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(3)); //输出 “68.0”
在这种情况下,toPrecision(3) 等价于 toFixed(1),输出的是 “68.0”。
19. String 对象
String 对象是 String 原始类型的对象表示法,它是以下方式创建的:
var oStringObject = new String(“hello world”);
(1)取值:String 对象的 valueOf() 方法和 toString() 方法都会返回 String 类型的原始值:
alert(oStringObject.valueOf() == oStringObject.toString()); //输出 “true”
(2)字符个数:String 对象具有属性 length,它是字符串中的字符个数:
var oStringObject = new String(“hello world”);
alert(oStringObject.length); //输出 “11”
(3)获取单个字符:charAt() 方法返回的是包含指定位置处的字符的字符串:
var oStringObject = new String(“hello world”);
alert(oStringObject.charAt(1)); //输出 “e”
(4)获取单个字符的代码:可以调用 charCodeAt() 方法:
var oStringObject = new String(“hello world”);
alert(oStringObject.charCodeAt(1)); //输出 “101”
(5)连接字符串,不改变原来:接下来是 concat() 方法,用于把一个或多个字符串连接到 String 对象的原始值上。该方法返回的是 String 原始值,保持原始的 String 对象不变:
var oStringObject = new String("hello ");
var sResult = oStringObject.concat(“world”);
alert(sResult); //输出 “hello world”
alert(oStringObject); //输出 "hello "
(6)得到字符索引:这两个方法的不同之处在于,indexOf() 方法是从字符串的开头(位置 0)开始检索字符串,而 lastIndexOf() 方法则是从字符串的结尾开始检索子串。例如:
var oStringObject = new String(“hello world!”);
alert(oStringObject.indexOf(“o”)); 输出 “4”
alert(oStringObject.lastIndexOf(“o”)); 输出 “7”
(7)字符串比较大小:下一个方法是 localeCompare(),对字符串进行排序。该方法有一个参数 - 要进行比较的字符串,返回的是下列三个值之一:
• 如果 String 对象按照字母顺序排在参数中的字符串之前,返回负数。
• 如果 String 对象等于参数中的字符串,返回 0
• 如果 String 对象按照字母顺序排在参数中的字符串之后,返回正数。
注释:如果返回负数,那么最常见的是 -1,不过真正返回的是由实现决定的。如果返回正数,那么同样的,最常见的是 1,不过真正返回的是由实现决定的。
示例如下:
var oStringObject = new String(“yellow”);
alert(oStringObject.localeCompare(“brick”)); //输出 “1”
alert(oStringObject.localeCompare(“yellow”)); //输出 “0”
alert(oStringObject.localeCompare(“zoo”)); //输出 “-1”
(8)切片,不改变原来:与 concat() 方法一样,slice() 和 substring() 方法都不改变 String 对象自身的值。它们只返回原始的 String 值,保持 String 对象不变。