变量:变量是数据的命名存储
最大数值 +- 2^53-1
1._tpyeof运算符
2.交互 alert prompt confirm
1.prompt弹出输入框
`let age = prompt('How old are you?', 100);
alert(You are ${age} years old!); // You are 100 years old!`
2.confirm弹出确定 取消 分别返回true和false
`let isBoss = confirm("Are you the boss?");
alert( isBoss ); // 如果“确定”按钮被按下,则显示 true`
3.类型转换
Number类型转换--
undefined => NaN
null => 0
true and false => 1 and 0
布尔值转换--
直观上为“空”的值(如 0、空字符串、null、undefined 和 NaN)将变为 false。
4.运算符
注意:只要任意一个运算元是字符串,那么另一个运算元也将被转化为字符串。
求幂 2**3 == 8
+true ==1 它的效果和 Number(...) 相同,但是更加简短。
条件运算符 ?
`let age = prompt('age?', 18);
let message = (age < 3) ? 'Hi, baby!' :
(age < 18) ? 'Hello!' :
(age < 100) ? 'Greetings!' :
'What an unusual age!';
alert( message );`
逻辑运算符
js中有四个逻辑运算符:||(或),&&(与),!(非),??(空值合并运算符)。
a ?? b
如果第一个参数不是 null/undefined,则 ?? 返回第一个参数。否则,返回第二个参数。
5.循环
1.break 跳出循环体 2.continue 跳出本次循环
6.返回值
指令 return 可以在函数的任意位置。当执行到达时,函数停止,并将值返回给调用代码
只使用 return 但没有返回值也是可行的。但这会导致函数立即退出。
7.对象
计算属性 当创建一个对象时,我们可以在对象字面量中使用方括号。这叫做 计算属性。
`let fruit = prompt("Which fruit to buy?", "apple");
let bag = {
[fruit]: 5, // 属性名是从 fruit 变量中得到的
};
alert( bag.apple ); // 5 如果 fruit="apple"`
属性存在测试
"key" in obj //true or false
for...in obj 循环
为了遍历一个对象的所有键(key),可以使用一个特殊形式的循环:for..in obj。
for (let key in user)
赋值了对象的变量存储的不是对象本身,而是该对象“在内存中的地址” —— 换句话说就是对该对象的“引用”。
当一个对象变量被复制 —— 引用被复制,而该对象自身并没有被复制。