js作用域
1 | <script> |
默认如果直接在script标签中定义变量,则属于“全局作用域范围”(全局执行环境),即属于window对象。
1 . 全局作用域范围的变量直到网页关闭或浏览器关闭时才释放资源
2 . 一个页面中的多个script标签中的变量可以互相访问。
3 . JS有垃圾回收机制,会定时对可释放资源的变量回收。将变量设置为null则表示可以被回收了。
1 | <script> |
1 | <script> |
方法内部不使用var定义的变量相当于全局变量1
2
3
4
5
6
7
8
9
10
11<script>
function f1(parameters) {
i = 100;
//var i = 100;
}
</script>
<script>
f1();
alert(i);//100
//alert(i);使用未定义
</script>
switch
js中switch中的判断是严格判断就是全等于(===)1
2
3
4
5
6
7
8
9
10
11
12<script>
var i = 90;
switch (i) {
case 90:
alert("number");
break;
case "90":
alert("string");
break;
default:
}
</script>
js类型转换
注意点:
1 Number()将任意值转换成数字 如果该字符串不能完全转换为整型,则返回NaN
2 String()转换不成功返回undefined, toString()报错
3 Boolean()转换当为0或为空(值为空或者null)时返回false,其余返回true1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20<script>
alert(parseInt("90")); //90
alert(parseInt("90aaaaaaaaaa")); //90
alert(parseInt("aaaaaa")); //NaN
alert(parseInt(111, 2)); //代表给定一个二进制的数111输出十进制
alert(parseFloat(10.111)); //10.111
alert(Number("40addd")); //将任意值转换成数字 如果该字符串不能完全转换为整型,则返回NaN
//alert(isNaN("aaa")); //true
var str;
alert(String(str)); //undefined
alert(str.toString()); //报错
//boolean
var b1 = Boolean(""); //false - 空字符串
var b2 = Boolean("hello"); //true - 非空字符串
var b1 = Boolean(50); //true - 非零数字
var b1 = Boolean(null); //false – null
var b1 = Boolean(0); //false - 零
var b1 = Boolean(new object()); //true - 对象
</script>