您的位置:首页 > Web前端 > JavaScript

js 基础知识总结

2017-06-27 09:51 344 查看
1.switch结构

switch
语句部分和
case
语句部分,都可以使用表达式。

switch(1 + 3) {
case 2 + 2:
f();
break;
default:
neverhappens();
}


上面代码的
default
部分,是永远不会执行到的。

需要注意的是,
switch
语句后面的表达式与
case
语句后面的表示式,在比较运行结果时,采用的是严格相等运算符(
===
),而不是相等运算符(
==
),这意味着比较时不会发生类型转换。

var x = 1;

switch (x) {
case true:
console.log('x发生类型转换');
default:
console.log('x没有发生类型转换');
}
// x没有发生类型转换


上面代码中,由于变量
x
没有发生类型转换,所以不会执行
case true
的情况。这表明,
switch
语句内部采用的是“严格相等运算符”。

2.闭包

1)闭包简单理解成“定义在一个函数内部的函数”。闭包最大的特点,就是它可以“记住”诞生的环境,比如
f2
记住了它诞生的环境
f1
,所以从
f2
可以得到
f1
的内部变量。在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

2)闭包的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量始终保持在内存中,即闭包可以使得它诞生环境一直存在。

3.异或运算

“异或运算”有一个特殊运用,连续对两个数a和b进行三次异或运算,aˆ=b, bˆ=a, aˆ=b,可以互换它们的值(详见维基百科)。这意味着,使用“异或运算”可以在不引入临时变量的前提下,互换两个变量的值。

var a = 10;
var b = 99;

a ^= b, b ^= a, a ^= b;

a // 99
b // 10


这是互换两个变量的值的最快方法。

异或运算也可以用来取整。

12.9 ^ 0 // 12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: