1.isNaN() 函数用于检查其参数是否是非数字值
2.数组与对象的数据格式
2.1数组(Array)字面量 定义一个数组:
[40, 100, 1, 5, 25, 10]
2.2对象(Object)字面量 定义一个对象也可称为json对象:
{firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}
3.JavaScript 数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
4.JavaScript 作用域
局部作用域
全局变量
5.JavaScript 能够改变 HTML 样式 (CSS)
document.getElementById(“demo”).style.fontSize = “25px”;
6.JavaScript 语句的构成:
值、运算符、表达式、关键词和注释。
7.JavaScript 关键词
break 终止 switch 或循环。
continue 跳出循环并在顶端开始。
debugger 停止执行 JavaScript,并调用调试函数(如果可用)。
do … while 执行语句块,并在条件为真时重复代码块。
for 标记需被执行的语句块,只要条件为真。
function 声明函数。
if … else 标记需被执行的语句块,根据某个条件。
return 退出函数。
switch 标记需被执行的语句块,根据不同的情况。
try … catch 对语句块实现错误处理。
var 声明变量。
8.JavaScript 对大小写敏感
9.JavaScript 语句定义两种类型的值:混合值(字面量)和变量值(变量)。
10.JavaScript 类型运算符
运算符 | 描述 |
---|---|
typeof | 返回变量的类型。 |
instanceof | 返回 true,如果对象是对象类型的实例。 |
11.JavaScript中+的运算
运算:var x = 911 + 7 + “Porsche”;
结果:918Porsche
运算:var x = “Porsche” + 911 + 7;
结果:Porsche9117
在第一个例子中,JavaScript 把 911 和 7 视作数值,直到遇见 “Porsche”。
在第二个例子中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。
12.超大或超小的数值可以用科学计数法来写
var y = 123e5; // 12300000
var z = 123e-5; // 0.00123
13.常见的 HTML 事件
事件 | 描述 |
---|---|
onchange | HTML 元素已被改变 |
onclick | 用户点击了 HTML 元素 |
onmouseover | 用户把鼠标移动到 HTML 元素上 |
onmouseout | 用户把鼠标移开 HTML 元素 |
onkeydown | 用户按下键盘按键 |
onload | 浏览器已经完成页面加载 |
14.javascript中长代码的换行
document.getElementById(“demo”).innerHTML = “Hello
Kitty!”;
注意:某些浏览器也不允许 \ 字符之后的空格。
对长字符串换行的最安全做法(但是有点慢)是使用字符串加法:
document.getElementById(“demo”).innerHTML = “Hello” +
“Kitty!”;
15.在javascript中== 和 ===的区别
== 只要求值相等,而 === 要求值和类型都相等
16.字符串的方法
https://www.w3school.com.cn/js/js_string_methods.asp
17.整数(不使用指数或科学计数法)会被精确到 15 位。
var x = 999999999999999; // x 将是 999999999999999
var y = 9999999999999999; // y 将是 10000000000000000
18.小数的最大数是 17 位,但是浮点的算数并不总是 100% 精准
var x = 0.2 + 0.1; // x 将是 0.30000000000000004
解决方法:
var x = (0.2 * 10 + 0.1 * 10) / 10; // x 将是 0.3
注意:切记在做精确计算的时候不可用小数进行运算
19.把变量转换为数值
方法 | 描述 |
---|---|
Number() | 返回数字,由其参数转换而来。 |
parseFloat() | 解析其参数并返回浮点数。 |
parseInt() | 解析其参数并返回整数。 |
20.遍历数组的最佳方法是使用标准的 for 循环
<p id="demo"></p>
<script>
var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
text += "<li>" + fruits[i] + "</li>";
}
text += "</ul>";
document.getElementById("demo").innerHTML = text;
</script>
21.向数组中添加元素
向数组添加新元素的最佳方法是使用 push() 方法
实例:
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.push(“Lemon”);
也可以使用 length 属性向数组添加新元素
实例
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits[fruits.length] = “Lemon”; // 向 fruits 添加一个新元素 (Lemon)
22.数组和对象的区别
在 JavaScript 中,数组使用数字索引。
在 JavaScript 中,对象使用命名索引。
数组是特殊类型的对象,具有数字索引
23.数组创建注意点
避免 new Array()
没有必要使用 JavaScript 的内建数组构造器 new Array()。
请使用 [] 取而代之!
24.识别数组
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
typeof fruits;
typeof 运算符返回 “object”,因为 JavaScript 数组属于对象。
25.JavaScript 数组方法
https://www.w3school.com.cn/js/js_array_methods.asp
26.JavaScript 数组排序
https://www.w3school.com.cn/js/js_array_sort.asp
27.JavaScript 数组迭代方法
https://www.w3school.com.cn/js/js_array_iteration.asp
28.JavaScript Math 对象
28.1Math.round(x) 的返回值是 x 四舍五入为最接近的整数
Math.round(6.8); // 返回 7
Math.round(2.3); // 返回 2
28.2Math.pow(x, y) 的返回值是 x 的 y 次幂
Math.pow(8, 2); // 返回 64
28.3Math.sqrt(x) 返回 x 的平方根:
Math.sqrt(64); // 返回 8
28.4Math.abs(x) 返回 x 的绝对(正)值:
Math.abs(-4.7); // 返回 4.7
28.5Math.ceil(x) 的返回值是 x 上舍入最接近的整数:
Math.ceil(6.4); // 返回 7
28.6Math.floor(x) 的返回值是 x 下舍入最接近的整数:
Math.floor(2.7); // 返回 2
28.7Math.min() 和 Math.max() 可用于查找参数列表中的最低或最高值:
Math.min(0, 450, 35, 10, -8, -300, -78); // 返回 -300
Math.max(0, 450, 35, 10, -8, -300, -78); // 返回 450
28.8Math.random() 返回介于 0(包括) 与 1(不包括) 之间的随机数:
Math.random(); // 返回随机数
28.9Math 对象方法
方法 | 描述 |
---|---|
abs(x) | 返回 x 的绝对值 |
acos(x) | 返回 x 的反余弦值,以弧度计 |
asin(x) | 返回 x 的反正弦值,以弧度计 |
atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度 |
ceil(x) | 对 x 进行上舍入 |
cos(x) | 返回 x 的余弦 |
exp(x) | 返回 Ex 的值 |
floor(x) | 对 x 进行下舍入 |
log(x) | 返回 x 的自然对数(底为e) |
max(x,y,z,…,n) | 返回最高值 |
min(x,y,z,…,n) | 返回最低值 |
pow(x,y) | 返回 x 的 y 次幂 |
random() | 返回 0 ~ 1 之间的随机数 |
round(x) | 把 x 四舍五入为最接近的整数 |
sin(x) | 返回 x(x 以角度计)的正弦 |
sqrt(x) | 返回 x 的平方根 |
tan(x) | 返回角的正切 |
29.JavaScript 随机
Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数
29.1Math.random() 总是返回小于 1 的数。
29.2JavaScript 随机整数
Math.random() 与 Math.floor() 一起使用用于返回随机整数。
实例
Math.floor(Math.random() * 10); // 返回 0 至 9 之间的数
实例
Math.floor(Math.random() * 11); // 返回 0 至 10 之间的数
实例
Math.floor(Math.random() * 100); // 返回 0 至 99 之间的数
实例
Math.floor(Math.random() * 101); // 返回 0 至 100 之间的数
实例
Math.floor(Math.random() * 10) + 1; // 返回 1 至 10 之间的数
实例
Math.floor(Math.random() * 100) + 1; // 返回 1 至 100 之间的数
29.3一个适当的随机函数
这个 JavaScript 函数始终返回介于 min(包括)和 max(不包括)之间的随机数:
实例
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
这个 JavaScript 函数始终返回介于 min 和 max(都包括)之间的随机数:
实例
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
30.所有不具有“真实”值的即为 False (Boolean(x)😉
0(零)的布尔值为 false:
-0 (负零)的布尔值为 false:
“”(空值)的布尔值为 false:
null 的布尔值是 false:
undefined 的布尔值是 false:
false 的布尔值(正如您猜到的)是 false:
NaN 的布尔值是 false:
31.js条件语句
if (条件 1) {
条件 1 为 true 时执行的代码块
} else if (条件 2) {
条件 1 为 false 而条件 2 为 true 时执行的代码块
} else {
条件 1 和条件 2 同时为 false 时执行的代码块
}
32.JavaScript Switch 语句
switch(表达式) {
case n:
代码块
break;
case n:
代码块
break;
default:
默认代码块
}
33.JavaScript For 循环
for - 多次遍历代码块
for/in - 遍历对象属性
33.1for循环
<script>
var cars = ["BMW", "Volvo", "porsche", "Ford"];
var i, len, text;
for (i = 0, len = cars.length, text = ""; i < len; i++) {
text += cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
33.2for/in - 遍历对象属性
<p id="demo"></p>
<script>
var txt = "";
var person = {fname:"Bill", lname:"Gates", age:62};
var x;
for (x in person) {
txt += person[x] + " ";
}
document.getElementById("demo").innerHTML = txt;
</script>
34.JavaScript While 循环
<p id="demo"></p>
<script>
var text = "";
var i = 0;
while (i < 10) {
text += "<br>数字是 " + i;
i++;
}
document.getElementById("demo").innerHTML = text;
</script>
<p id="demo"></p>
<script>
var text = ""
var i = 0;
do {
text += "<br>数字是 " + i;
i++;
}
while (i < 10);
document.getElementById("demo").innerHTML = text;
</script>
35.JavaScript Break 和 Continue
break 语句“跳出”循环。
continue 语句“跳过”循环中的一个迭代
36.JavaScript 类型转换
https://www.w3school.com.cn/js/js_type_conversion.asp
37.位运算
https://www.w3school.com.cn/js/js_bitwise.asp
38.正则表达式
https://www.w3school.com.cn/js/js_regexp.asp
39.JavaScript 错误 - Throw 和 Try to Catch
try {
供测试的代码块
}
catch(err) {
处理错误的代码块
}
finally {
无论 try / catch 结果如何都执行的代码块
}
40.JavaScript 提升(Hoisting)
var 的申明会被提升 用 let 或 const 声明的变量和常量不会被提升!
参考文档
https://www.w3school.com.cn/js/js_hoisting.asp
41.严格模式
https://www.w3school.com.cn/js/js_strict.asp
42.JavaScript this 关键词
https://www.w3school.com.cn/js/js_this.asp
43.let与const
持续更新
https://www.w3school.com.cn/js/js_hoisting.asp