以后坚持每天抽出一定时间学习JS
1.延迟执行
defer
用法:
<script type = "text/javascript" defer src="test1.js'></script>
</head>
本例虽然把< script>标签放到head中,但其中的脚本将延迟到浏览器遇到< /html>标签后再执行。但是有些浏览器会不支持这个属性,所以把其放到底部是一个最佳的选择。
2.异步响应
defer
用法:
<script type = "text/javascript" async src="test1.js'></script>
<script type = "text/javascript" async src="test2.js'></script>
</head>
只适合外部脚本文件,不保证先后顺序执行,目的是不让页面等待两个脚本文件下载完成后再执行,异步加载页面其他内容。但同时也不是所有浏览器都支持。
3.响应事件
onload
<script>
window.onload = function(){
alert(a);
f();
}
</script>
onload事件只有在文档加载完毕后才会响应。
4.动态脚本
document.write()
5.错误处理
try–catch
try{
a+b;
}catch(error){
alert(error.message);
}finally{ // finally为可选子句,只要放上去必执行
return 0;
}
throw
throw new SyntaxError("^*%&*%^%&*&")
用于查找错误来源
6.全局变量
把多个全局变量都追加在名称空间下,减少“全局污染”
var My = {};
My.name = {
"first-name" :" first" ,
"last-name" : "last"
};
My.work = {
number: 123,
one: {
name: "123"
},
two: {
name:"234"
}};
7.检测数据类型
constructor
var o = {};
alert(o.constructor == Object); //返回true
对于数值比如4不能直接使用,应该用(4)转成对象再检测(加上小括号)
8.设置数字显示的小数位数(转换字符串)
toFixed()
toFixed()能把数值转换成字符串,并显示小数后指定位数
alert((10).toFixed)) //返回字符串“10.00”
toExponential()
把数字转换为科学计数法形式的字符串
var a= 123456789;
alert(a.toExponential(2)); //返回字符串“1.23e+8”
toPrecision()
它与toExponential()不同的是,它是指定有效数字的位数,而不仅仅是小数位数。
9.转换为数字
parseInt()
从左到右把分析的合法数字字符转成数字,直到发现非数字字符为止。
alert(parseInt("173abc")); //返回数字123
以0开头的字符串,函数会把它当作八进制数字处理,先转换为数值,再转换为十进制数值返回。可以把不同进制的字符串转成整数。
parseFloat()
parseFloat()与parseInt()用法基本相同,但是能够识别第一个出现的小数点号。
10.转换为对象
test()
var a=1; //直接赋值
var b = new Number(1); //通过Number构造函数装箱后赋值
a.test(); // 检测当前对象的数据类型是否为Object对象
11.对象运算符
new
var a = new Array //创建数组结构的对象,省略小括号
var a = new Array() //创建数组结构的对象
var c = new Array(1,2,3)
alert(c[1])
delete
删除指定对象的属性、数组元素或变量。
var a={
x:1,
y:2
};
delete a.x;
使用var声明的变量是不允许删除的
12.连续运算
var a=b=c=1;
event?event:window.event
用法:
if(event)
event = event; //如果支持Event对象,则直接使用event
else
event = window.event //如果不支持,则调用window对象的属性event
示例:
var a= ( ( a = =1) ? alert(1): //如果a等于1,则提示1
( a = =2) ? alert(2): //如果a等于2,则提示2
( a = =3) ? alert(3):
alert( undefined) //否则提示undefined