三、语句
JavaScript程序由语句组成,语句遵守特定的语法规则。 例如:if、while、with语句
1、块blcok
块语句常用语组合 0~多个语句。用一对花括号定义。
例:
{
var str = 'hi';
console.log(str);
}
实际上与if或for其他语句连用。 注意:没有块级作用域。
//对象字面值是封闭在花括号对({})中的一个对象的零个或多个”属性名:值”列表。
2、声明语句var
var a = b =1;
此时a,b都为1。但b此时为全局变量。
所以一条语句定义多个变量的方式,即用“,”去分隔。例 :
var a=1 ,b=1;
3、try-catch语句
提供一个异常捕获的机制。执行的流程是首先执行try块中的代码,如果抛出了异常,会由catch从句去捕获并执行,如果没有异常,catch中的语句会被忽略掉,但是不管有没有异常,最后都会执行finally从句。try后面必须接着一个catch或finally。
注意嵌套语句的执行顺序。
例:
try{
throw 'test';
}catch(ex){
console.log(ex);//test
}finally{
console.log('finally');
}
4、function语句
用来定义函数对象。用function定义的函数对象一般叫函数声明。与之对应的另一种叫做函数表达式。
funcation fd(){ //函数声明
//do sth.
return true;
}
var fe = function(){ //函数表达式
//do sth.
}
主要区别: 函数声明会被预先处理,或者叫函数前置。所以在函数声明代码的前面可以成功调用这个函数,但函数表达式不可以。
5、for....in 语句
var p;
var obj = { x:1,y:2 }
for( p in obj ){}
用 for in去遍历obj对象中的属性
注意:1、for in 的顺序是不确定的(依赖引擎的实现) 2、enumerable为false时不会出现 3、for in对象属性是受原型链影响 (若obj的原型链上的原型有其他的属性,且enumerable为true,也会在for in中出现)
6、switch 语句(条件分支语句)
switch(val){
case 1: console.log(1);
break;
case 2: console.log(2);
beark;
default:console.log(0);
break;
}
注意:若没有break,则执行完一个case语句后继续往下执行。
7、while、do while、for 循环语句
do while语句结构和while语句差不多,但是他保证循环体至少被执行一次。先执行代码,后判断条件。
8、with语句
可以修改当前的作用域
使用with:
让js引擎优化更难。
可读性差。
可被变量定义代替。
严格模式下被禁用。
严格模式
严格模式是一种特殊的执行模式,他修复了部分语言上的不足,提供更强的错误检查,增强安全性。
让函数func内部的代码在严格模式下执行
function func(){
'use strict';
}
可以向上兼容
比如在比较老的ie中执行,那么他只会被当做普通的字符串,并被忽略掉。
'use strict';
function func(){
}
在整个js文件的最开头使用'use strict',整个js代码都在严格模式下执行