js函数一些小的知识点
var scope="123";
function aa(){
console.log(scope);//undefind
var scope="234";
console.log(scope);//234
};//变量声明提前
var a=1;//不可删除的全局变量
b=2;//可删除的全局变量
delete a;//true
delete b;//false
//delete 删除
in 运算符
左侧是一个字符串或可以转换为字符串,右侧是一个对象,如果左侧的字符串等于右侧对象的一个属性,则返回true
instanceof 运算符
左侧是一个对象,右侧是一个类,如果左侧对象是右侧类的实例,则返回true,否则返回false
eval("3+2");//5 表达式运算 如果参数是字符串他会当成js代码运行,如果不是字符串,会返回这个参数
continue //跳出本次循环,执行下一次循环
break //跳出循环
return //跳出函数,并有一个返回值
throw //抛出一个异常,使用try/catch/finally 可以捕获异常
function error(x)
{
if(x<0) throw new Error('这是一个错误');
debugger 断点调试
}
//关键字
const a=0;//声明常量,重复赋值会失败,重复声明会报错
function aa(n){
let total=0,result=[];//在函数体内都是有定义的
for(let i=0;i<n;i++){//只在循环中有定义
let odd=2*i-1;//只在循环中有定义
total+=add;
result.push(total)
}
return result;
};//通过let声明的变量只属于就近的花括号括起来的语言块
结构赋值:
在结构赋值中,等号右侧是一个数组或对象,指定左侧一个或多个变量的语法和右侧的数组和对象直接量的语法保持一致
let [x,y]=[1,2];//等价于 let x=1,y=2
[x,y] = [x+1,y+1];//等价于 x=x+1,y=y+1
let [a,[b,c]]=[1,[2,3]];//等价于 a=1,b=2,c=3
同样也适用于对象
生成器
使用yield和return类似,
function range(min,max){
for(let i=Math.ceil(min); i<max; i++) yield i;
}
for(let n in range(3,8));console.log(n);//输出数字3~8
函数简写