javascript高级程序设计-第三章

没有一节一节写的很详细,就总结一些常用的,给自己或者也一起在学习的朋友一起过过眼瘾,一起理理,喜欢的朋友可以点赞关注哦。

严格模式
为什么使用JavaScript严格模式

在严格模式启用后,JavaScript引擎会对脚本进行更严格的评估。通常不会触发显式异常的Sloppy代码现在会导致代码在使用之前被抛出异常。所谓严格模式就是是ECMAScript 5中的一项新功能,它允许将程序或函数放置在严格的操作环境中,这种方法的好处规范了开发人员编写代码的规范以及减少页面出错。即使有良好的现代开发经验,也需要使用JavaScript严格模式,因为它会触发真实环境来进行语法检查。这意味着我们在执行时可以实时分析并显示语法和代码质量问题。

严格模式的好处

通过它们可以来消除一些JavaScript中的无声错误。
修复了JavaScript引擎难以执行优化的错误。
禁止使用可能在ECMAScript的未来版本中定义的潜在保留字。
当采取相对“不安全”操作时,它可以防止或抛出错误。

如何使用严格模式
function doSomething(){ 
 "use strict"; 
 //函数体
} 
数据类型
typeof函数

作用:检测给定变量的数据类型。
返回:
“undefined”——如果这个值未定义;
“boolean”——如果这个值是布尔值;
“string”——如果这个值是字符串;
“number”——如果这个值是数值;
“object”——如果这个值是对象或 null;
“function”——如果这个值是函数。

Null类型

Null字面意思是空,指一个空对象指针,所以typeof(null)会返回一个Object对象。
无论在什么情况下都没有必要把一个变量的值显式地设置为 undefined,可是同样的规则对 null 却不适用。换句话说,
只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存 null 值。这样做不仅可以
体现 null 作为空对象指针的惯例,而且也有助于进一步区分 null 和 undefined。

Number类型
数值范围

这个在日常开发中处理多位数的数值处理中经常遇到,比如前端要返回一个180000000000000000000数值类型给后端,后端技术水平弱智要求不要返回字符串‘180000000000000000000’,还有不能返回科学计数法,要返回数值类型的,我就日他鬼的,气的我当场想把那东西毙了,实际操作中给变量赋值那么大的数值会自动转成科学计数法,那就是他提出的问题无解。最好的合中的方法就是通过BigDecimal这个工具去处理数值,转成字符串类型。这有点题外话了,做个让自己不爽的记录。
ECMAScript 能够表示的最小数值保存在 Number.MIN_VALUE 中——在大多数浏览器中,这个值是 5e-324;能够表示的最大数值保存在Number.MAX_VALUE 中——在大多数浏览器中,这个值是1.7976931348623157e+308。如果某次计算的结果得到了一个超出 JavaScript 数值范围的值,那么这个数值将被自动转换成特殊的 Infinity 值。具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转换成 Infinity(正无穷)。运算操作如果大于最大数值会返回Infinity(正无穷)、小于则-Infinity(负无穷)。

NaN

NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。
番外话,这个问题我经常犯错,就是要相乘的全局变量我没有默认赋值,然后做一些计算操作的时候,后端请求的数据比较慢或者没有请求到,就会有这种问题,我的解决方法就是用isNaN()函数进行判断是否为数值。

Object类型

ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,var o = new Object();
Object 的每个实例都具有下列属性和方法。
constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是 Object()。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句(本章后面将会讨论)来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值