现代JavaScript精要

为什么要做这个系列?

做一个书记的缩读版,既完成了知识的输出,也给其他朋友提供一个概要。

简介

暂且不讨论Node.js,只讨论浏览器环境运行的JS。

  • JavaScript是一种让你的网页动起来的语言。
  • JavaScript 遵循同源策略,且不能够读写硬盘。
  • 与相机/麦克风和其它设备进行交互需要获得用户的明确许可。
  • F12即可使用谷歌浏览器的调试功能,其他高级调试操作参照文档进行学习。

JavaScript 基础知识

基础语法

  • 可以使用 <script> 标签将 JavaScript 程序插入到 HTML 文档的任何位置。
  • 脚本文件可以通过 src 特性(attribute)添加到 HTML 文件中,如果设置了 src 特性,script 标签内容将会被忽略。
  • 注释和C语言一致。
  • [1, 2].forEach(alert); forEach的用法。
  • ECMAScript 5 (ES5) 的出现。ES5 规范增加了新的语言特性并且修改了一些已经存在的特性。为了保证旧的功能能够使用,大部分的特性修改是默认不生效的。需要指令 use strict 来明确地激活这些特性。请确保 “use strict” 出现在脚本的最顶部
  • 用let来定义变量,const 定义常量。

数据类型

  • number 类型代表整数和浮点数,数字类型包括Infinity、-Infinity 和 NaN。除以 0 得到Infinity,NaN 代表一个计算错误,无穷以外的错误计算错误报NaN。
  • 所有大于 (253-1) 的奇数都不能用 “number” 类型存储。
  • BigInt 类型是最近被添加到 JavaScript 语言中的,用于表示任意长度的整数。可以通过将 n 附加到整数字段的末尾来创建 BigInt 值。
  • 在 JavaScript 中,有三种包含字符串的方式。反引号是 功能扩展 引号。它们允许我们通过将变量和表达式包装在 ${…} 中,来将它们嵌入到字符串中。
  • JavaScript 中没有 character 类型。
  • JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。
  • 如果一个变量已被声明,但未被赋值,那么它的值就是 undefined.

交互

  • alert
  • prompt result = prompt(title, [default]); 浏览器会显示一个带有文本消息的模态窗口,还有 input 框和确定/取消按钮。
  • confirmresult = confirm(question);

类型转换

  • 在算术中,会自动进行 number 类型转换。alert( "6" / "2" ); // 3
  • String(value)
  • Number(str)

数学运算

  • 求幂 **
  • 只要任意一个运算元是字符串,那么另一个运算元也将被转化为字符串。 alert( '1' + 2 ); // "12"
  • 但是如果运算元不是数字,一元运算符则会将其转化为数字。alert( +true ); // 1
  • 链式赋值从右到左进行计算, a = b = c = 2 + 2;
  • 字符串是按字符逐个进行比较的。
  • 当对不同类型的值进行比较时,JavaScript 会首先将其转化为数字(number)再判定大小。
  • 严格相等运算符 === 在进行比较时不会做任何的类型转换。
  • 当使用非严格相等 == 比较二者时JavaScript 存在一个特殊的规则,会判定它们相等。它们俩就像“一对恋人”,仅仅等于对方而不等于其他任何的值(只在非严格相等下成立)。alert( null == undefined ); // true
  • undefined 和 null 在相等性检查 == 中不会进行任何的类型转换,它们有自己独立的比较规则。alert( null == 0 ); // (2) false
  • alert( null >= 0 ); // (3) true 大于小于转成了数字。
  • undefined 不应该被与其他值进行比较,在比较中被转换为了 NaN,而 NaN 是一个特殊的数值型值,它与任何值进行比较都会返回 false。而 undefined 只与 null 相等,不会与其他值相等。

逻辑运算符

JavaScript 中有四个逻辑运算符:||(或),&&(与),!(非),??(空值合并运算符)。

  • 或运算符 || 做了如下的事情:
    从左到右依次计算操作数。
    处理每一个操作数时,都将其转化为布尔值。如果结果是 true,就停止计算,返回这个操作数的初始值。
    如果所有的操作数都被计算过(也就是,转换结果都是 false),则返回最后一个操作数。
  • 我们用或运算 || 来选择有数据的那一个,并显示出来
  • ?? 返回其中的非空值。

循环

  • for 循环的任何语句段都可以被省略。
let i = 0;

for (; i < 3;) {
  alert( i++ );
}

函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值