asp技术做网站,赣州模板建站开发,成都网站建设推广,中牟建设局网站var 语句 用于声明一个函数范围或全局范围的变量。
1.1 const修饰 const#xff1a;常量的值是无法改变的#xff0c;也不能被重新声明。 PI#xff1a;3.1415926.... 因为变量你修改值#xff0c;就是等于把引用地址也修改了。
//申明不可变的值
const number 42;
n… var 语句 用于声明一个函数范围或全局范围的变量。
1.1 const修饰 const常量的值是无法改变的也不能被重新声明。 PI3.1415926.... 因为变量你修改值就是等于把引用地址也修改了。
//申明不可变的值
const number 42;
number 99;
console.log(number); //TypeError: Assignment to constant variable.
不能复制给const修饰的变量 课堂案例1.const修饰变量(不可变的值).html const也可以修饰对象和数组
const MY_OBJECT {key: value};
// 重写对象和上面一样会失败
// Uncaught TypeError: Assignment to constant variable.
MY_OBJECT {OTHER_KEY: value};
// 对象属性并不在保护的范围内
// 下面这个声明会成功执行
MY_OBJECT.key otherValue; // Use Object.freeze() to make object immutable
// 也可以用来定义数组
const MY_ARRAY [];
// 可以向数组填充数据
MY_ARRAY.push(A); // [A]
// 但是将一个新数组赋给变量会引发错误
// Uncaught TypeError: Assignment to constant variable.
MY_ARRAY [B]; 课堂案例2.const修饰对象.html 课堂案例3.const修饰数组.html
1.2 let修饰 let 语句声明一个块级作用域的局部变量。 let 允许你声明一个作用域被限制在块作用域中的变量、语句或者表达式。与 var 关键字不同的是var 声明的变量作用域是全局或者整个函数块的。 var 和 let 的另一个重要区别let 声明的变量不会在作用域中被提升它是在编译时才初始化。
var x1 1;
if (x1 1) {var x1 2;console.log(x1);// expected output: 2
}
//引用了全局的
console.log(x1);
// expected output: 1
let x2 1;
if (x2 1) {let x2 2;console.log(x2);// expected output: 2
}
//作用域划分非常明显
console.log(x2);
// expected output: 1 课堂案例4.let申明变量.html 作用域规则 let 声明的变量作用域只在其声明的块或子块内部这一点与 var 相似。二者之间最主要的区别在于 var 声明的变量的作用域是整个封闭函数。
function varTest() {var x 1;{var x 2; // same variable!console.log(x); // 2}console.log(x); // 2
}
function letTest() {let x 1;{let x 2; // different variableconsole.log(x); // 2}console.log(x); // 1
} 课堂案例5.let作用域规则.html 重复声明 在同一个函数或块作用域中重复声明同一个变量会抛出 SyntaxError
//错误情况1
if (x) {let foo;let foo; // SyntaxError thrown.
}
//错误情况2
let x 1;
switch(x) {case 0:let foo;break;case 1:let foo; // SyntaxError for redeclaration.break;
}
//正确情况然而需要特别指出的是一个嵌套在 case 子句中的块会创建一个
//新的块作用域的词法环境就不会产生上诉重复声明的错误。
let x 1;
switch(x) {case 0: {let foo;break;}case 1: {let foo;break;}
} 其它情况 用在块级作用域中let 将变量的作用域限制在块内而 var 声明的变量的作用域是在函数内。
var a 1;
var b 2;
if (a 1) {var a 11; // the scope is globallet b 22; // the scope is inside the if-block
console.log(a); // 11console.log(b); // 22
}
console.log(a); // 11
console.log(b); // 2 课堂案例6.let的重复申明与其它情况.html
2 数组常用函数的应用
2.1 数组排序 课堂案例7.数组反转和排序的函数.html
2.2 数组常用方法解析 课堂案例8.数组常用方法1.html at() 根据索引返回对应的值 参数为负数从后往前检索 匹配给定索引的数组中的元素。如果找不到指定的索引则返回 undefined。 indexOf() 返回指定值第一次出现对应的索引 参数为负数也是从指定的位置开始往后找 如果不存在则返回 -1 lastIndexOf() 返回元素最后一次出现的索引从数组的后面向前查找从右边向左边找 如果不存在则返回 -1 参数为正数的时候也是从右边向左边找。 课堂案例9.数组常用方法2.html values() 将数组转换为迭代器进行遍历可以使用增强For循环。 课堂案例10.数组常用方法3.html concat() 用于合并两个或多个数组。此方法不会更改现有数组而是返回一个新数组。 copyWithin() 复制数组的一部分到同一数组中的另一个位置并返回它不会改变原数组的长度。 console.log(array1.copyWithin(0, 3, 4)); 包含了索引3的值而不包含索引4的值给替换到索引0的位置。 entries() 方法返回一个新的 Array Iterator 对象该对象包含数组中每个索引的键/值对。 课堂案例11.数组常用方法之every.html 课堂案例12.数组常用方法之filter.html every() 接受的参数是一个函数它返回一个布尔值。 array1.every(isThreshold) //将左边数组中的每个值都调用isThreshold进行计算 filter() 过滤数组的元素该方法的返回值是true和false最终将为true的结果进行返回。