数据类型简介
标识符
不能把关键字、保留字、true、false和null用作标识符
关键字和保留字
可用于表示控制语句的开始或结束,或者用于执行特定操作等。(仅列举ES5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//关键字:
break do instanceof typeof case
else new var catch finally
return void continue for switch
while debugger function this with
default if throw delete in
try
//保留字:
abstract enum int short boolean
export interface static extends long
super char final native synchronized
class float package throws const
goto private transient debugger implements
protected volatile double import public
byte
变量
1
2
3
4
5
6//例如以下代码
function test(){
var message = "hi"; // 局部变量
}
test();
alert(message); // 错误!但如果不使用var定义,则会变成全局(不推荐)
1
2
3
4
5function test(){
message = "hi"; // 全局变量
}
test();
alert(message); // "hi"可以使用一条语句定义多个变量
1
2
3var message = "hi",
found = false,
age = 29;
数据类型
typeof操作符
对一个值使用typeof操作符可能返回下列某个字符串:
- “undefined”——如果这个值未定义;
- “boolean”——如果这个值是布尔值;
- “string”——如果这个值是字符串;
- “number”——如果这个值是数值;
- “object”——如果这个值是对象或null;
“function”——如果这个值是函数。
1
2
3
4var message = "some string";
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // "number"
Undefined类型
一般而言,不存在需要显式地把一个变量设置为undefined值的情况。字面值undefined的主要目的是用于比较
Null类型
从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回”object”的原因
实际上,undefined值是派生自null值的,因此对它们的相等性测试要返回true
1
ndefined == null //true
Boolean类型
Boolean类型的字面值true和false是区分大小写的
Number类型
浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数
1
2
3
4
5
6var floatNum1 = 1.1;
var floatNum2 = 0.1;
var floatNum3 = .1; // 有效,但不推荐
var floatNum1 = 1.; // 小数点后面没有数字——解析为1
var floatNum2 = 10.0; // 整数——解析为10
var floatNum = 3.125e7; // 等于312500000.1加0.2的结果不是0.3,因此,永远不要测试某个特定的浮点数值
Number()
1
2
3
4var num1 = Number("Hello world!"); //NaN
var num2 = Number(""); //0
var num3 = Number("000011"); //11
var num4 = Number(true); //1parseInt()
1
2
3
4
5
6
7
8
9
10
11
12var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)
***
var num1 = parseInt("10", 2); //2 (按二进制解析)
var num2 = parseInt("10", 8); //8 (按八进制解析)
var num3 = parseInt("10", 10); //10 (按十进制解析)
var num4 = parseInt("10", 16); //16 (按十六进制解析)parseFloat()
1
2
3
4
5
6
7//parseFloat()只解析十进制值
var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000
String类型
toString()方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20var age = 11;
var ageAsString = age.toString(); // 字符串"11"
var found = true;
var foundAsString = found.toString(); // 字符串"true"
//****可以用于进制转换**********
var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"
//*****也会直接转换为返回结果*****
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // "10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"
Object类型
对象,其实就是一组数据和功能的集合,需要new一个(你懂的)
1
2var o = new Object();
var o = new Object; // 有效,但不推荐省略圆括号
Object的每个实例都具有下列属性和方法
- constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是Object()。
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。
- isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
关于javascript的趣向
1 | //可以直接f12尝试一下 |
好了就这样啦~~ψ(`∇´)ψ