1.JavaScript的特点
动态+弱类型解释型或实时编译型语言面向 对象函数式特征灵活和可扩展性反射与元编程高性能单线程异步非阻塞
2.JavaScript主要能做的事情
(通过DOM)改变网页文档元素和属性(通过BOM)操作浏览器API(事件机制)响应用户行为(XHR.Fetch.WS)发送和接收数据(File API)操作文件
3.JavaScript类型的说明:
动态类型+弱类型JS的变量、属性在运行期决定类型存在隐式类型转换有一系列识别类型的反射方法
4.JavaScript语言类型
typeof undefined === ‘undefined’typeof true === ‘boolean’typeof 123 === ‘number’typeof ‘username’ === ‘string’typeof {name:’sgm’} === ‘object’typeof symbol === ‘symbol’typeof null === ‘object’typeof function(){} === ‘function’
5.变量声明
var 声明一个变量,可选择将其初始化为一个值 不支持块级作用域,存在变量提升let 声明一个块级作用域变量,可选择其初始化为一个值 块级作用域,同一作用域中不允许重复声明,暂存死区(变量不会被提升,typeof也不是安全的),循环中的let作用域const 声明一个只读的常量 const声明的标识符所绑定的值不可以再次改变,但是所绑定值得内容可以改变
6.变量不声明直接引用
严格模式非严格模式
7.严格相等与非严格中的相等
null == undefined,null !== undefined非严格相等的类型转换(’1’ == 1 , [] == 0, 0 == false, 1 == true都为true)NAN与任何值(包括自身)都不相等
8.boolean类型
值为true和false0、‘’、null、undefined被隐式转换为false,其他为true可以通过!!将非boolean值转换为boolean布尔操作符 && 和 || 并不会转换类型比较操作符总是返回boolean类型&& 和 || 都有短路特性(第一个操作数能决定结果,那么就不会再对第二个操作数求值) 1 || console.log(“sgm”); 第一个操作数为真,则表达式的结果为真,则不会执行后面的输出 0 && console.log(“sgm”); 第一个操作数为false,表达式结果为false,则不会输出结果 0 || console.log(“sgm”); 1 && console.log(“sgm”); 两者都输出结果
9.Number类型
数值范围:-2^53 - 2^53Number.MIN_SAFE_INTEGER,可精确表示的整数范围下限。-Math.pow(2, 53)+1,即是-9007199254740991 -Number.MAX_SAFE_INTEGER,可精确表示的整数范围上限。Math.pow(2, 53)-1,即是9007199254740991。 -Infinity(超过最大数,无穷大),用isFinite()来判断 -Number.MAX_VALUE(1.7976931348623157 x 10^308) -Number.MIN_VALUE(表示的最小的数(接近 0 ,但不是负数)。它的近似值为 5 x 10-324。) -Number.EPSILON,极小值(2.220446049250313e-16),作为允许的误差范围使用。可用作判断小数精度。(当某运算结果的误差小于Number.EPSILON则认为该结果是可被接受的)浮点数精度 -value.toPrecision(n); 数字一共保留n位 value.toFixed(n) 小数点后面保留n位数值转换 -parseInt()在ES5严格模式下,不具有解析八进制的能力,这种情况下可以为parseInt()提供第二个参数 var num=parseInt(“AF”,16) parseInt()解析空字符串null会返回NaN -parseFloat()只解析十进制的值,十六进制格式的字符串始终被转换为0 -Number()函数的转换规则: 1.如果是boolean值,true和false分别被转换为1和0 2.如果是null,返回0. var num1=Number(“”); //0 3.如果是undefined,返回NaN0和-0
转载请注明原文地址: https://ju.6miu.com/read-38823.html