箭头表达式
用来声明匿名函数,消除传统匿名函数的this指针问题
arrowFunction.ts文件内容如下
/**单行的匿名函数,不需要写大括号和return */
var sum1 = (arg1, arg2) => arg1 + arg2;
/**单个参数的匿名函数 */
var sum2 = arg1 => arg1;
/**没有参数的匿名函数 */
var sum3 = () => {
return;
}
/**匿名函数实例 */
var arr = [1, 2, 3, 4, 5];
console.log(arr.filter(value => value % 2 == 0));
编译后的arrowFunction.js文件内容如下
/**单行的匿名函数,不需要写大括号和return */
var sum1 = function (arg1, arg2) { return arg1 + arg2; };
/**单个参数的匿名函数 */
var sum2 = function (arg1) { return arg1; };
/**没有参数的匿名函数 */
var sum3 = function () {
return;
};
/**匿名函数实例 */
var arr = [1, 2, 3, 4, 5];
console.log(arr.filter(function (value) { return value % 2 == 0; }));
消除传统匿名函数的this指针问题例子arrowFunction2.ts文件内容如下
/**传统匿名函数关于this指针问题 */
function getStock(name: string) {
this.name = name;
setInterval(function () {
console.log('name is :' + this.name);
},1000);
}
var stock = new getStock("Microsoft");
/**箭头表达式消除this指针问题 */
function getStock2(name: string) {
this.name = name;
setInterval(()=> {
console.log('name is :' + this.name);
},1000);
}
var stock2 = new getStock2("Google");
编译后的arrowFunction2.js文件内容如下
/**传统匿名函数关于this指针问题 */
function getStock(name) {
this.name = name;
setInterval(function () {
console.log('name is :' + this.name);
}, 1000);
}
var stock = new getStock("Microsoft");
/**箭头表达式消除this指针问题 */
function getStock2(name) {
var _this = this;
this.name = name;
setInterval(function () {
console.log('name is :' + _this.name);
}, 1000);
}
var stock2 = new getStock2("Google");
for of循环
forOf.ts文件内容如下
var arr = [1, 2, 3, 4, 5];
arr.desc = "five numbers";
/**传统forEach循环,不可中断 */
arr.forEach(value => console.log(value));
/**传统for in循环 */
for (var key in arr) {
console.log(`key is:${key},value is:${arr[key]}`);
}
/**for of循环数组等集合*/
for (var value of arr) {
if (value > 2) break;
console.log(`value is : ${value}`);
}
/**for of循环字符串*/
for (var value2 of 'five number') {
console.log(`value is : ${value2}`);
}
编译后的forOf.js文件内容如下
var arr = [1, 2, 3, 4, 5];
arr.desc = "five numbers";
/**传统forEach循环,不可中断 */
arr.forEach(function (value) { return console.log(value); });
/**传统for in循环 */
for (var key in arr) {
console.log("key is:" + key + ",value is:" + arr[key]);
}
/**for of循环数组等集合*/
for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {
var value = arr_1[_i];
if (value > 2)
break;
console.log("value is : " + value);
}
/**for of循环字符串*/
for (var _a = 0, _b = 'five number'; _a < _b.length; _a++) {
var value2 = _b[_a];
console.log("value is : " + value2);
}
相关推荐
9. **TypeScript**:作为JavaScript的超集,TypeScript提供了静态类型检查,有助于防止运行时错误,提高代码质量。 10. **JavaScript的最新特性**:可能涵盖了ES新标准带来的特性,如箭头函数、解构赋值、模板字符...
此外,ES6引入的`for...of`循环和`Array.prototype.forEach()`可以更方便地遍历可迭代对象。 6. 事件和DOM操作: 在浏览器环境中,JavaScript可以处理用户交互,如点击、提交等事件。通过`document.getElementById...
4. **控制流**:掌握条件语句(`if...else`)、循环(`for`、`while`、`for...of`、`forEach`等)和异常处理(`try...catch`)是编写逻辑的关键。 5. **模块化**:了解CommonJS(`require`和`module.exports`)和...
12. **性能优化**:如避免内存泄漏,使用`for-of`循环而非`for`循环,以及利用`requestAnimationFrame`进行动画处理。 13. **跨域通信**:CORS(跨源资源共享)机制,JSONP,以及现代浏览器中的Web API,如Fetch ...
16. **迭代器与for...of循环**:迭代器协议允许遍历任意可迭代对象,`for...of`循环是其对应的语法结构。 17. **Promise.all和Promise.race**:用于处理多个Promise并行执行,分别表示所有Promise都成功或第一个...
理解函数表达式(匿名函数、箭头函数)与函数声明的区别很有用。 4. **对象**:JS中的对象是键值对的集合,可以通过字面量语法或构造函数创建。掌握对象属性的访问和修改,以及原型链的概念,有助于理解对象继承。 ...
3. 模板字符串与字符串插值(String Interpolation):模板字符串允许开发者嵌入表达式到字符串中,字符串插值则是模板字符串中的一种特定用法,它使用${expression}来将表达式的结果插入到字符串中。 4. 箭头函数...
了解函数表达式(匿名和命名)、箭头函数以及作用域(局部和全局)的概念。 3. 作用域:JavaScript有两种作用域,全局和局部。闭包是一种特殊的内部函数,能访问外部函数的变量,即使外部函数已经执行完毕。 4. ...
11. **对象方法与遍历**:理解`for...in`, `for...of`, `Object.keys`, `Object.values`, `Object.entries`等用于遍历对象的方法。 12. **模板字符串**:使用反引号(``)创建字符串,支持插值表达式和多行字符串。 ...
2. **控制结构**:包括条件语句(if...else,switch)和循环(for,while,do...while,forEach,for...of)。这些结构用于根据特定条件执行代码块或重复执行代码。 3. **函数**:函数是可重用的代码块,可以通过...
2. **函数**:函数声明、函数表达式、参数默认值、rest参数、箭头函数。 3. **类与对象**:面向对象编程概念,如类的定义、继承、构造函数、访问修饰符(public, private, protected)。 4. **接口(Interface)**...
2. 控制流:if...else语句用于条件判断,for、while循环用于迭代执行,switch...case提供多分支选择。break和continue用来控制循环流程。 3. 函数:函数是可重用的代码块,可以作为值传递。JavaScript支持函数...
2. 控制流程:包括条件语句(if...else、switch)、循环(for、while、do...while)、跳转语句(break、continue)等。 3. 函数:函数是JavaScript中可重用的代码块,理解函数声明、函数表达式、参数传递(按值或按...
1. **基础语法**: JavaScript的基础包括变量、数据类型(如字符串、数字、布尔、null、undefined、对象和数组)、操作符(算术、比较、逻辑、赋值等)、流程控制(条件语句if...else、switch,循环语句for、while、...
3. 控制结构:包括条件语句(如if...else)、循环(如for、while、do...while)和跳转语句(如break、continue),它们用于控制程序的流程。 4. 函数:函数是可重复使用的代码块,可以接受参数并返回值。JavaScript...
5. **数组和迭代器**:掌握数组的方法,如map, filter, reduce等,以及ES6引入的Set和Map数据结构,还有迭代器和for...of循环的使用。 6. **异步编程**:事件循环、回调函数、Promise和async/await的使用,理解...
9. **ES6及后续版本的新特性**:包括类、解构赋值、模板字符串、箭头函数、let/const、模块导入导出、迭代器与for...of循环、Promise、生成器、async/await等。 10. **错误处理**:理解如何捕获和处理运行时错误,...
- 函数:函数表达式、箭头函数、this指向、闭包、高阶函数。 - 异步编程:回调、Promise、async/await。 - 模块化:CommonJS、ES6模块。 4. **ES6面试真题** (3.ES6面试真题-84页.pdf) ES6(ECMAScript 2015)...
2. **控制流**:JavaScript提供了if...else语句、switch...case语句进行条件判断,以及for、while、do...while循环语句进行循环操作。ES6引入了更简洁的语法,如解构赋值、模板字符串、箭头函数等。 3. **函数**:...
7. **ES6及更高版本的新特性**:例如模板字符串、解构赋值、箭头函数、let/const、块级作用域、类与继承、模块导入导出、Set与Map、迭代器与for...of循环、Promise.all和Promise.race等。 8. **数组方法**:深度...