JS输出框类型5种
- alert(‘你好’); (只有确定一个按钮的警示框)
- prompt(‘请输入您的姓名’);
- confirm(‘确认提交信息吗?’); (有确定和取消两个按钮)
- console.log(’’); (控制台打印)
- document.write(’’); (在页面输出信息)
转义字符
\” 转双引
\’转单引
\n转换行
\r 转回车
基本数据类型5种
number/string/boolean/null/undefined
ES6新增 symbol
Symbol 是一种唯一标识符,可用作对象的唯一属性名,避免被别人改写或覆盖。
特点:唯一性,隐藏性
let id = Symbol("id“);
- 作用:
- 1.同样变量生成的值也不相等。
- 2.for···in,object.keys() 不能访问
访问方式:
Object.getOwnPropertySymbols
Object.getOwnPropertySymbols 方法会返回一个数组,成员是当前对象的所有用作属性名的 Symbol 值。
布尔值转换成false的五种情况
- null
- undefined
- ‘’ (空字符串)
- 0或-0
- NaN
ParseInt Parsefloat
- console.log(parseInt('12',16)); // 18
带两个参数表示进制转换。
以16进制解析,但会变回十进制。
加法运算
加法 比较特殊
// 加法运算 有一方是字符串,另外一方会转成字符串 进行拼串
console.log(1 + 2 + '3'); // '33'
console.log(1 + '2' + 3); // '123'
console.log(true + false); // 1+0
console.log(1 + null); // 1+0
console.log(1 + undefined); // 1+NaN == NaN
// 凡是NaN 参与的运算 结果都是 NaN
console.log(100 - '1'); // 99
console.log(100 / '1'); // 100
自增运算符
区别:
var c = 20;
var d = c++;
// ++ 在后 ,先赋值 再 执行++
console.log(c); // 21
console.log(d); // 20
var m = 20;
var n = ++m;
// ++在前,所以 会 先++ ,再 赋值
console.log(m); // 21
console.log(n); // 21
特殊情况:如果符号两侧的值都是字符串时,不会将其转换为数字进行比较。
比较两个字符串时,比较的是字符串的Unicode 编码。
等于和严格等于
===严格等于
!==严格不等于
== 存在隐式转换
console.log('hello' == 'hello'); // true
console.log('100' == 100); // true
console.log(true == "1");
所以说 一般 做 相等判断时 ,使用 === (严格等于)
会先比较数据类型,类型一致,就接着比较
如果类型不一致 ,直接 false
console.log(100 === '100'); // false
严格不等于 !== (严格等于的反面)
所以 尽量使用 === 做相等判断(严谨)