js01
问题
- const的常见错误有哪些?
- 解释弱类型与编译强类型的区别是什么?
- undefined与null分别是什么类型?
- Infinity与NaN有哪些区别,NaN === NaN的结果是什么?
- console.log(0xf,1.9e405)这个语句输出的是什么?
JAVASCRIPT(JS)
-
发展历史
1995 网景 LiveScript->JavaScript
1996 微软 JScript
Ecma
TC39 ECMA-262
1997 ES1
ES5(ECMAScript5)->2015年6 ES6(ES2015)->.... -
客户端JS的组成部分
ES(核心语言) 变量、数据类型、函数、对象、数组,语句...
DOM 文档对象模型
BOM 浏览器对象模型 -
JS作用
浏览器JS做网页特效
手机APP
游戏
服务器端(node)
...
JS是一门脚本语言(嵌入在其他语言中执行) 解释型语言,不用编译,执行一行算一行。- 弱类型,说白了就是数据类型分的不细
- 强类型(java),就是数据类型分的较细,用编译,编译通过后,统一执行。
-
数据类型
基本数据类型(原始数据类型)
number 数值 string 字符串 boolean 布尔类型 null 空 undefined 未定义 es6新增Symbol
对象数据类型(引用数据类型) 数组 函数 日期 数学 ...
-
null 空 undefined
null表示没有对象 该处不应该有值
undefined 表示缺少值,此处应该有值,但没有定义
-
变量名的命名规范
1.字母、数字、_、$组成
2.不能以数字开头
3.区分大小写 a A
4.不能是关键字和保留字
if/else/for...5.名字有语义
代码区:
<div onclick="alert('hello js');">我是一个div</div>
<script>
alert('hello world');
</script>
<script src="./my.js">
alert('ifullstack'); // 此处的js代码会被忽略
</script>
- const
//练习一:
//错误TypeError:
const a1 = 10;
console.log(typeof a1);
a1 = 10.9; //Uncaught TypeError(未捕获类型错误): Assignment to constant variable.
console.log(typeof a1);
//练习二:
const a = null;
let b;
// if const b;就会报错Uncaught SyntaxError: Missing initializer in const declaration
console.log(typeof a);
console.log('b:',b);
console.log(typeof b);
/**
object
b: undefined
undefined
*/
- 计算机cpu运算:十进制的小数转二进制小数有精度损失
const a1 = 0.1+0.2;
const a2 = 0.3;
console.log(a1 === a2); //false
- Infinity是number类型,表示超过范围
//练习三:
console.log(typeof Infinity); //number
console.log(2.3e3); //2300
//8进制
console.log(010); //8
//0x是16进制的开头
console.log(0xf,1.9e405); //15,Infinity
console.log(isFinite(1.9e405)); // false表示超过了范围
console.log(isFinite(1.9e5)); //true
console.log(Infinity === Infinity); //true
console.log(Infinity === -Infinity); //false
- NaN是number类型
console.log(typeof NaN); //number
console.log(NaN === NaN); //false
console.log(NaN + 1); // NaN
const a = NaN;
const b = '1r'
const c = '1'
const d = 1;
console.log(isNaN(a)); //true NaN是一个not a number
console.log(isNaN(b)); //true '1r'是一个not a number
console.log(isNaN(c)); //false '1'不是一个not a number,'1'是一个number,这个是bug,需要特殊处理
console.log(isNaN(d)); //false 1是一个number
console.log(isNaN(null)); //false null是一个number这个是bug,需要特殊处理。
console.log(isNaN(undefined)); //true undefined是一个not a number。
- \转义符
console.log("abc\'d\'"); // abc'd'
console.log(`${'\''}${'a'}${1+8*7/2}${'b'}${'\''}`); // 'a29b'
浙公网安备 33010602011771号