JavaScript 基础知识2

本文是阅读现代JavaScript 教程的个人笔记(其实只是看不下去博客太容易分心所以边复制边学习),详情请见网址https://zh.javascript.info/。

接上文 JavaScript 基础知识1

十、条件分支:if 和 ‘?’

感觉没有特别要注意的

十一、逻辑运算符

或运算

一个或运算 || 的链,将返回第一个真值,如果不存在真值,就返回该链的最后一个值。

alert( undefined || null || 0 ); // 0(都是假值,返回最后一个值)

用法
① 获取变量列表或者表达式中的第一个真值。

let firstName = "";
let lastName = "";
let nickName = "SuperCoder";

alert( firstName || lastName || nickName || "Anonymous"); //SuperCoder

② 短路求值(Short-circuit evaluation)
指的是,|| 对其参数进行处理,直到达到第一个真值,然后立即返回该值,而无需处理其他参数。

与运算

与运算返回第一个假值,如果没有假值就返回最后一个值。

alert( 1 && 0 ); // 0
alert( 1 && 5 ); // 5

// 如果第一个操作数是假值,
// 与运算将直接返回它。第二个操作数会被忽略
alert( null && 5 ); // null
alert( 0 && "no matter what" ); // 0

alert( 1 && 2 && null && 3 ); // null
alert( 1 && 2 && 3 ); // 3,最后一个值

两个非运算 !! 有时候用来将某个值转化为布尔类型:

alert( !!"non-empty string" ); // true
alert( !!null ); // false

内建的 Boolean 函数也可以实现这个效果:

alert( Boolean("non-empty string") ); // true
alert( Boolean(null) ); // false

非运算符 ! 的优先级在所有逻辑运算符里面最高,所以它总是在 && 和 || 之前执行。

十二、空值合并运算符

空值合并运算符(nullish coalescing operator)

result = a ?? b

其实等于result = (a !== null && a !== undefined) ? a : b;

  • ?? 的常见使用场景是提供默认值。
let user;
alert(user ?? "匿名"); // 匿名(user 未定义)

与 || 比较

它们之间重要的区别是:
|| 返回第一个 值。
?? 返回第一个 已定义的 值。

优先级

?? 运算符的优先级与 || 相同

十三、while和for

while

任何表达式或变量都可以是循环条件,而不仅仅是比较。在 while 中的循环条件会被计算,计算结果会被转化为布尔值。

let i = 3;
while (i) { // 当 i 变成 0 时,条件为假,循环终止
  alert( i );
  i--;
}

for

for (begin; condition; step) {
  // ……循环体……
}

for 循环的任何语句段都可以被省略。

一次从多层嵌套的循环中跳出来: 需要标签+break
break outer 向上寻找名为 outer 的标签并跳出当前循环。因此,控制权直接从 (*) 转至 alert(‘Done!’)。
在这里插入图片描述

十四、switch

switch中是严格相等

十五、函数

function name(parameter1, parameter2, ... parameterN) {
  ...body...
}

局部变量

在函数中声明的变量只在该函数内部可见。

外部变量

函数也可以访问外部变量
函数对外部变量拥有全部的访问权限。函数也可以修改外部变量。
任何函数之外声明的变量,都被称为 全局 变量
全局变量在任意函数中都是可见的(除非被局部变量遮蔽)。

默认值

function showMessage(from, text = "no text given") {
  alert( from + ": " + text );
}

showMessage("Ann"); // Ann: no text given

十六、函数表达式

无论函数是如何创建的,函数都是一个值。
在 JavaScript 中,函数是一个值,所以我们可以把它当成值对待。

回调函数、匿名函数

在函数声明被定义之前,它就可以被调用。
JavaScript 准备 运行脚本时,首先会在脚本中寻找全局函数声明,并创建这些函数。我们可以将其视为“初始化阶段”。

在处理完所有函数声明后,代码才被执行。所以运行时能够使用这些函数。

函数声明、函数表达式

十七、箭头函数

let sum = (a, b) => a + b;

这个箭头函数是下面这个函数的更短的版本:

let sum = function(a, b) {
  return a + b;
};

不太懂的点:undefined、null运用在||,还有运算符转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值