变量&&语法
-
函数体内局部变量优先级高于全局变量
-
函数内的变量声明将提升至函数体顶部,同时在原位置完成初始化var声明
-
在for循环中使用var声明变量时,该变量的作用域为for循环所属函数。
var a=[];
for(var i = 0;i<10;i++){
var q = i;
a[i]=function(){console.log(q)}
}
a[0]()
/*其中,由于for循环并不是一个函数体,所以for循环中定义的变量q和i是作用域for循环所在的函数体,和a同级,
i++ 和 q=i 并不是重新定义变量,只是重复赋值,最终循环结束,i = 10,q=9; */
- let声明的变量,只在let所在的代码块有效果
1. var a=[];
2. for(let i = 0;i<10;i++){
3. ley q = i;
4. a[i]=function(){console.log(q)}
5. }
6. a[6]()
//这里会输出 6 let声明的变量仅在块级作用域有效,所以这里的i只在本轮循环有效果,每次循环的i其实都是一个新的变量
function 声明
/*定义一个函数 */
//one:
function mysqrt(x){//使用此声明则函数名与函数初始化块均“提前”到脚本或函数的顶部
return Math.sqrt(x*x);
}
//two
var mysqrt = function(x){return Math.sqrt(x*x);}//使用此声明则仅有变量声明“提前”到脚本或函数的顶部,初始化体仍在原来的位置
for-in
- for-in 会跳过null、undefined
- 只遍历可枚举的(包含继承的属性名)
/*使用for-in 变量数组元素 */
var o = {x:1,y:2,z:3}
var a = [],i = 0//声明一个数组与一个变量
for(a[i++]in o);
continue,break
带标签的continue,break作用相同,均是跳转到指定循环(均不得跳转至所属函数边界,即所属函数外)
mainloop: while(token!=null){
continue mainloop;
}
mainloop: while(token!=null){
break mainloop;//mainloop为自定义标记
}
异常处理
throw 抛出异常
try{/*可能出现异常的代码*/}
catch(){/*对异常的处理*/}
finally{/*不管发不发生异常都执行的语句*/}
with语句
检索对象列表,解析变量名
/*用于简化代码*/
with(document.forms[0]){
name.value="";
address.value="";
email.value="";
}
/*简化前*/
var f = document.form[0];
f.name.value="";
f.address.value="";
f.email.value="";
操作符
===严格相等
- 比较过程中没有类型的转换,两个值类型不同则其不等
- 值为null或undefined则其不等
- 均是相同的布尔值则相等
- 其中一个值为NaN则不等**
==
- 值为null或undefined则其相等
- 两个不同类型的值转换后相等则其相等(如:true转换为1 false转换为0 再进行比较)
in
- 左操作数是一个字符串或可以转换为字符串,有操作数是一个对象
- 如右侧对象包含左侧操作数,表达式返回true
var a = {x:a}
"x" in a; //true
instanceof
- 如左侧对象是右侧类的实例,表达式将返回true
var mynew = new Date();
mynew instanceof Date;//返回true
null、undefined
- null是一个特殊对象(非对象),多用来表示字符串、数字、对象得无值。
- undefined(未定义) 表示属性或元素不存在
- === 可区分null与undefined,而==则不行
类型转换
x+""//等价于String(x)
+x//等价于Number(x)
!!x//等价于Boolean(x)
对象向字符串转换
有toString则通过此方法将其变为字符串,无toString则通过ValueOf,二者均无则报错。
空数组向数值转换结果为0
附表:语法||运算符||类型转换
** 待续 **
1.《JS初学者笔记 变量||语法||操作符》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《JS初学者笔记 变量||语法||操作符》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/study/26737.html