最适合网络开发者的网站

JS 教程

JS 首页 JS 简介 JS 去哪儿 JS 输出 JS 语句 JS 语法 JS 评论 JS 变量 JS 让 JS 常量 JS 运算符 JS 算术 JS 作业 JS 数据类型 JS 函数 JS 对象 JS 活动 JS 字符串 JS 字符串方法 JS 字符串搜索 JS 字符串模板 JS 数字 JS 数字方法 JS 数组 JS 数组方法 JS 数组排序 JS 数组迭代 JS 数组常量 JS 日期 JS 日期格式 JS 获取日期方法 JS 日期设置方法 JS 数学 JS 随机 JS 布尔值 JS 比较 JS 如果否则 JS 开关 JS 循环 JS 循环 JS 循环 JS 循环 JS 中断 JS 可迭代对象 JS 集 JS 地图 JS Typeof JS 类型转换 JS 按位 JS 正则表达式 JS 错误 JS 作用域 JS 提升 JS 严格模式 JS this 关键字 JS 箭头函数 JS 类 JS 模块 JS JSON JS 调试 JS 风格指南 JS 最佳实践 JS 错误 JS 性能 JS 保留字

JS 版本

JS 版本 JS 2009(ES5) JS 2015(ES6) 小学 2016 小学 2017 小学 2018 JS IE/Edge JS 历史

JS 对象

对象定义 对象属性 对象方法 对象显示 对象访问器 对象构造函数 对象原型 对象可迭代对象 对象集 对象映射 对象引用

JS 函数

函数定义 函数参数 函数调用 函数调用 功能应用 函数绑定 函数闭包

JS 类

课程简介 类继承 静态类

JS 异步

JS 回调 JS 异步 JS 承诺 JS 异步/等待

JS HTML DOM

DOM 简介 DOM 方法 DOM 文档 DOM 元素 DOM HTML DOM 表单 DOM CSS DOM 动画 DOM 事件 DOM 事件监听器 DOM 导航 DOM 节点 DOM 集合 DOM 节点列表

JS 浏览器 BOM

JS 窗口 JS 屏幕 JS 位置 JS 历史 JS 导航器 JS 弹出警告 JS 时机 JS Cookies

JS Web API

Web API 简介 Web 表单 API 网络历史记录 API Web 存储 API Web Worker API Web 获取 API 网络地理定位 API

JS AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 示例

JS JSON

JSON 简介 JSON 语法 JSON 与 XML JSON 数据类型 JSON 解析 JSON 字符串化 JSON 对象 JSON 数组 JSON 服务器 JSON 格式的 PHP JSON 的 HTML JSON JSONP

JS 与 jQuery

jQuery 选择器 jQuery HTML jQuery CSS jQuery DOM

JS 图形

JS 图形 JS 画布 JS Plotly JS Chart.js JS 谷歌图表 JS D3.js

JS 示例

JS 示例 JS HTML DOM JS HTML 输入 JS HTML 对象 JS HTML 事件 JS 浏览器 JS 编辑器 JS 练习 JS 测验 JS 证书

JS 参考

JavaScript 对象 HTML DOM 对象

JavaScript。W3Schools 英文版。初学者课程

尿素

JavaScript ES6

ECMAScript 2015 是 JavaScript 的第二次重大修订。

ECMAScript 2015 又称为 ES6 和 ECMAScript 6。

本章描述了 ES6 最重要的特性。

ES6 中的新特性


浏览器对 ES6 的支持(2015)

Safari 10 和 Edge 14 是首批完全支持 ES6 的浏览器:

Chrome 58 边缘 14 Firefox 54 Safari 10 歌剧 55
2017 年 1 月 2016 年 8 月 2017 年 3 月 2016 年 7 月 2018 年 8 月

JavaScript 让

let 关键字允许您声明具有块范围的变量。

例子

变量x = 10;
// 这里 x 是 10
{
让 x = 2;
// 这里 x 是 2
}
// 这里 x 是 10
亲自尝试 »

阅读更多内容 let 在本章中:JavaScript 让.


JavaScript const

const 关键字允许您声明一个常量(具有常量值的 JavaScript 变量)。

常量与 let 变量类似,只是其值不能改变。

例子

变量x = 10;
// 这里 x 是 10
{
常量x = 2;
// 这里 x 是 2
}
// 这里 x 是 10
亲自尝试 »

阅读更多内容 const 在本章中:JavaScript 常量.


箭头函数

箭头函数允许使用简短的语法来编写函数表达式。

你不需要 function 关键字,return 关键字,以及大括号.

例子

// ES5
var x = 函数(x,y){
返回 x * y;
}

// ES6
const x = (x,y) => x * y;
亲自尝试 »

箭头函数没有自己的 this. 它们不太适合定义 对象方法.

箭头函数不会被提升。它们必须被定义 它们被使用了。

使用 const 比使用更安全var,因为函数表达式始终是一个常数值。

您只能省略 return 如果函数是单个语句,则使用关键字和花括号。因此,始终保留它们可能是一个好习惯:

例子

const x = (x, y) => { 返回 x * y };
亲自尝试 »

在本章中了解有关箭头函数的更多信息: JavaScript 箭头函数.


For/Of 循环

JavaScript for/of 语句循环遍历可迭代对象的值。

for/of 让您循环遍历可迭代的数据结构,例如数组、字符串、映射、NodeLists 等。

for/of 循环具有以下语法:

为了 (多变的可迭代) {
  // 需要执行的代码块
}

多变的 - 对于每次迭代,下一个属性的值被分配给变量。多变的 可以声明为const, let, 或者 var.

可迭代 - 具有可迭代属性的对象。

循环遍历数组

例子

const cars = ["宝马", "沃尔沃", "迷你"];
让文本=“”;

for(让 x 辆车){
文本+=x+“”;
}
亲自尝试 »

循环遍历字符串

例子

让语言 = “JavaScript”;
让文本=“”;

对于(让 x 的语言){
文本+=x+“”;
}
亲自尝试 »

在本章中了解更多信息: JavaScript 循环 For/In/Of.


JavaScript 地图

能够使用对象作为键是 Map 的一个重要特性。

例子

// 创建对象
const 苹果 = {名称:'苹果'};
const bananas = {名称:'香蕉'};
const oranges = {名称:'Oranges'};

// 创建新地图
const 水果 = new Map();

// 向地图添加新元素
水果.设置(苹果,500);
水果.设置(香蕉,300);
水果.设置(橙子,200);
亲自尝试 »

在本章中了解有关 Map 对象的更多信息: JavaScript 地图.


JavaScript 集

例子

// 创建一个集合
const 字母 = new Set();

// 向集合中添加一些值
字母.添加(“a”);
字母.添加(“b”);
字母.添加(“c”);
亲自尝试 »

在本章中了解有关 Set 对象的更多信息: JavaScript 集.


JavaScript 类

JavaScript 类是 JavaScript 对象的模板。

使用关键字 class 创建一个类。

总是添加一个名为 constructor():

句法

类名称 {
构造函数(){...}
}

例子

汽车类 {
构造函数(名称,年份){
这个.name = 名称;
今年.年 = 年;
  }
}

上面的例子创建了一个名为“Car”的类。

该类有两个初始属性:“名称”和“年份”。

JavaScript 类是 不是 一个东西。

它是一个 模板 对于 JavaScript 对象。


使用类

当你有一个类时,你可以使用该类来创建对象:

例子

const myCar1 = new Car("福特", 2014);
const myCar2 = new Car("奥迪", 2019);
亲自尝试 »

在本章中了解有关课程的更多信息: JavaScript 类.


JavaScript 承诺

Promise 是一个连接“生成代码”和“使用代码”的 JavaScript 对象。

“生成代码”可能需要一些时间,而“使用代码”必须等待结果。

Promise 语法

const myPromise = new Promise(函数(myResolve,myReject){
// “生成代码”(可能需要一些时间)

myResolve(); // 成功时
myReject(); // 当出现错误时
});

// “消费代码”(必须等待实现的承诺)。
myPromise.then(
函数(值){/*成功时的代码*/},
{"params":["error"],"text":"/* 如果出现错误则显示代码 */"}
);

使用 Promise 的示例

const myPromise = new Promise(函数(myResolve,myReject){
setTimeout(function() { myResolve("我爱你!!"); }, 3000);
});

myPromise.then(函数(值){
document.getElementById("demo").innerHTML = 值;
});
亲自尝试 »

在本章中了解有关 Promises 的更多信息: JavaScript 承诺.


符号类型

JavaScript 符号是一种原始数据类型,就像数字、字符串或布尔值一样。

它代表一个唯一的“隐藏”标识符,其他任何代码都无法意外访问。

例如,如果不同的程序员想要向属于第三方代码的 person 对象添加 person.id 属性,他们可以混合彼此的值。

使用 Symbol() 创建唯一标识符,解决了这个问题:

例子

const 人 = {
名字:“约翰”,
姓氏:“Doe”,
年龄:50岁,
眼睛颜色:“蓝色”
};

让 id = Symbol('id');
人[id] = 140353;
// 现在 person[id] = 140353
// 但 person.id 仍然未定义
亲自尝试 »

符号总是独一无二的。

如果您创建两个具有相同描述的符号,它们将具有不同的值。

符号(“id”)==符号(“id”)//false

默认参数值

ES6 允许函数参数具有默认值。

例子

函数 myFunction(x, y = 10) {
// 如果未传递或未定义,则 y 为 10
返回 x + y;
}
myFunction(5); // 将返回 15
亲自尝试 »

函数剩余参数

剩余参数 (...) 允许函数将不确定数量的参数视为数组:

例子

函数总和(...参数){
设总和=0;
对于(让 arg 的 args)sum + = arg;
返回总数;
}

设 x = sum(4, 9, 16, 25, 29, 100, 66, 77);
亲自尝试 »

字符串.includes()

includes() 方法返回true 如果字符串包含指定值,否则false:

例子

让文本 = “你好,世界,欢迎来到宇宙。”;
text.includes("world") // 返回 true
亲自尝试 »

String.startsWith()

startsWith() 方法返回true 如果字符串以指定值开头,否则false:

例子

让文本 = “你好,世界,欢迎来到宇宙。”;

text.startsWith("Hello") // 返回 true
亲自尝试 »

String.endsWith()

endsWith() 方法返回true 如果字符串以指定值结尾,否则false:

例子

var text = "John Doe";
text.endsWith("Doe") // 返回 true
亲自尝试 »

数组.from()

Array.from() 方法从任何具有长度属性的对象或任何可迭代对象返回一个 Array 对象。

例子

从字符串创建数组:

Array.from("ABCDEFG") // 返回 [A,B,C,D,E,F,G]
亲自尝试 »

数组键()

keys() 方法返回一个带有数组键的 Array Iterator 对象。

例子

创建一个数组迭代器对象,包含数组的键:

const 水果 = ["香蕉", "橙子", "苹果", "芒果"];
const 键 = 水果.keys();

让文本=“”;
for(让 x 个键){
文本 += x + "<br> “;
}
亲自尝试 »

数组查找()

find() 方法返回通过测试函数的第一个数组元素的值。

此示例查找(返回其值)第一个大于 18 的元素:

例子

const 数字 = [4, 9, 16, 25, 29];
让 first = numbers.find(myFunction);

函数 myFunction(值,索引,数组){
返回值&gt;18;
}
亲自尝试 »

请注意,该函数接受 3 个参数:

  • 商品价值
  • 项目索引
  • 数组本身

数组 findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。

此示例查找第一个大于 18 的元素的索引:

例子

const 数字 = [4, 9, 16, 25, 29];
让 first = numbers.findIndex(myFunction);

函数 myFunction(值,索引,数组){
返回值&gt;18;
}
亲自尝试 »

请注意,该函数接受 3 个参数:

  • 商品价值
  • 项目索引
  • 数组本身

新的数学方法

ES6 向 Math 对象添加了以下方法:

  • Math.trunc()
  • Math.sign()
  • Math.cbrt()
  • Math.log2()
  • Math.log10()

Math.trunc() 方法

Math.trunc(x) 返回 x 的整数部分:

例子

Math.trunc(4.9); // 返回 4
Math.trunc(4.7); // 返回 4
Math.trunc(4.4); // 返回 4
Math.trunc(4.2); // 返回 4
Math.trunc(-4.2); // 返回 -4
亲自尝试 »

Math.sign() 方法

Math.sign(x) 如果 x 为负数、空数或正数则返回:

例子

Math.sign(-4); // 返回 -1
Math.sign(0); // 返回 0
Math.sign(4); // 返回 1
亲自尝试 »

Math.cbrt() 方法

Math.cbrt(x) 返回 x 的立方根:

例子

Math.cbrt(8); // 返回 2
Math.cbrt(64); // 返回 4
Math.cbrt(125); // 返回 5
亲自尝试 »

Math.log2() 方法

Math.log2(x) 返回 x 的以 2 为底的对数:

例子

Math.log2(2); // 返回 1
亲自尝试 »

Math.log10() 方法

Math.log10(x) 返回 x 的以 10 为底的对数:

例子

Math.log10(10); // 返回 1
亲自尝试 »

新数字属性

ES6 向 Number 对象添加了以下属性:

  • EPSILON
  • MIN_SAFE_INTEGER
  • MAX_SAFE_INTEGER

例子

让 x = Number.EPSILON;
亲自尝试 »

例子

让 x = Number.MIN_SAFE_INTEGER;
亲自尝试 »

例子

让 x = Number.MAX_SAFE_INTEGER;
亲自尝试 »

新的数字方法

ES6 为 Number 对象添加了 2 个新方法:

  • Number.isInteger()
  • Number.isSafeInteger()

Number.isInteger() 方法

Number.isInteger() 方法返回true 如果参数是整数。

例子

Number.isInteger(10); // 返回 true
Number.isInteger(10.5); // 返回 false
亲自尝试 »

Number.isSafeInteger() 方法

安全整数是可以精确表示为双精度数的整数。

Number.isSafeInteger() 方法返回true 如果参数是安全整数。

例子

Number.isSafeInteger(10); // 返回 true
Number.isSafeInteger(12345678901234567890); // 返回 false
亲自尝试 »

安全整数是 -(253 - 1) 至 +(253 - 1).
这是安全的:9007199254740991。这并不安全:9007199254740992。


新的全球方法

ES6 增加了 2 个新的全局数字方法:

  • isFinite()
  • isNaN()

isFinite() 方法

全球 isFinite() 方法返回false 如果论点是Infinity 或者NaN.

否则返回 true:

例子

isFinite(10/0); // 返回 false
isFinite(10/1); // 返回 true
亲自尝试 »

isNaN() 方法

全球 isNaN() 方法返回true 如果论点是NaN否则,返回 false:

例子

isNaN("Hello"); // 返回 true
亲自尝试 »

对象条目()

例子

创建一个数组迭代器,然后迭代键/值对:

const 水果 = ["香蕉", "橙子", "苹果", "芒果"];
const f = 水果.entries();

对于(让 x 属于 f){
文档.getElementById(“demo”).innerHTML += x;
}
亲自尝试 »

entries() 方法返回一个带有键/值对的数组迭代器对象:

0 香蕉
["1,“橙色”"]
["2,“苹果”"]
["3,“芒果”"]

entries() 方法不会改变原始数组。


模块

模块以两种不同的方式导入:

从命名导出导入

从文件 person.js 导入命名的导出:

从 “./person.js” 导入 { name, age };
亲自尝试 »

从默认导出导入

从文件 message.js 导入默认导出:

从“。/message.js”导入消息;
亲自尝试 »

了解有关模块的更多信息: JavaScript 模块.