JavaScript:基本语法
js语法严格区分大小写。
NaN
这个特殊的Number与所有其他值都不相等,包括它自己。唯一能判断NaN
的方法是通过isNaN()
函数:
NaN === NaN; // false
字符串:
//ASCII字符可以以\x##形式的十六进制表示,例如:
'\x41'; // 完全等同于 'A'
//还可以用\u####表示一个Unicode字符:
'\u4e2d\u6587'; // 完全等同于 '中文'
最新的ES6标准新增了一种多行字符串的表示方法,用`...`
表示:
alert(`多行
字符串
测试`);
字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果:
var s = 'Test';
s[0] = 'X'; // s仍然为'Test'
定义数组:
var arr = [1, 2, 3.14, 'Hello', null, true];
var arr = new Array(1, 2, 3);
定义对象:
对象由若干键值对组成,键是字符串类型,值可以是任意类型
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'],
city: 'Beijing',
zipcode: null
};
还可以给对象绑定一个函数,就可以做更多的事情:
var xiaoming = {
name: '小明',
birth: 2018,
age: function () {
var y = new Date().getFullYear();
return y - this.birth;
}
};
xiaoming.age; // function xiaoming.age()
xiaoming.age(); // 今年调用是1,明年调用就变成2了
条件判断:
JavaScript把null
、undefined
、0
、NaN
和空字符串''
视为false,其他值一概视为true。
if(true){
alert('if');
}else if(true){
alert('elseif');
}else{
alert('else');
} //输出if
循环:
for(var i=0; i<2; i++){
alert(i);
}
var x = 0;
for (;;) { // 将无限循环下去
if (x > 100) {
break; // 通过if判断来退出循环
}
x ++;
}
//for...in遍历对象
var o = {
name: 'Jack',
age: 20,
city: 'Beijing'
};
for (var key in o) {
alert(key); // 'name', 'age', 'city'
alert(o[key]); // 'Jack', 20, 'Beijing'
}
//由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引:
var a = ['A', 'B', 'C'];
for (var i in a) {
alert(i); // '0', '1', '2'
alert(a[i]); // 'A', 'B', 'C'
}
//请注意,for ... in对Array的循环得到的是String而不是Number。
var i=100;
while(i>0){
i--;
}
var n = 0;
do {
n++;
} while (n < 100);