global 作为js的全局对象,但其是无法直接访问的,但是在浏览器中浏览器是将这个对象当做是window对象的一部分,即Date 等Global的属性使用window.Date 可访问到
属性 | 描述 |
---|---|
Infinity | 特殊值表示正的无穷大。 |
NaN | 特殊值表示非数字值。 |
undefined | 特殊值表示一个变量未被初始化。 |
方法 | 描述 |
---|---|
decodeURI() | 对已编码的统一资源标识符(URI)进行解码,并返回其非编码形式。 |
decodeURIComponent() | 对统一资源标识符(URI)的一个已编码的组件进行解码,并返回其非编码形式。 |
encodeURI() | 对统一资源标识符(URI)进行编码,并返回编码后的URI字符串。 |
encodeURIComponent() | 对统一资源标识符(URI)的有效组件进行编码,并返回编码后的字符串。 |
escape() | 已过时对字符串进行编码,并返回一个可在所有计算机上读取的编码字符串。 |
eval() | 计算并执行以字符串表示的JavaScript代码。 |
isFinite() | 判断指定数字是否是有限值。 |
isNaN() | 判断指定数字是否是非数字值NaN 。 |
parseFloat() | 将字符串转换为浮点数并返回。 |
parseInt() | 将字符串转换为整数并返回。 |
unescape() | 已过时对已经使用escape()函数编码的字符串进行解码,并返回解码后的字符串。 |
1) encodeURI(); 用于整个url 且改方法不会对特殊字符进行编码
let url = "http://www.test.com/test one.hml#frist"; console.log(encodeURI(url)); //输出 : //http://www.test.com/test%20one.hml#frist
2)encodeURIComponent() 用于url的某一个片段,且会对任何非标准字符进行编码
let url = "http://www.test.com/test one.hml#frist"; console.log(encodeURIComponent(url)); //输出 : http%3A%2F%2Fwww.test.com%2Ftest%20one.hml%23frist
1) decodeURI(str) 对应的解码 是解encodeURI(str) 的反码
2)decodeURIComponent() 对应解 encodeURIComponent(); 可以解码任何特殊字符的编码
使用eval()时,执行的代码块被认为是所作用的环境或者作用域的一部分,常用来动态插入js到指定作用域,其中在eval()中创建的任何变量以及函数都不会被提升,因为这行声明是在需要执行的eval()字符串之中,只有执行到eval()时才创建
console.log('123'); //可直接在js中打印
eval('console.log("test")');// 该字符串通过eval() 解析也可直接在js中运行打印
test(); //Uncaught ReferenceError: test is not defined 因test函数在字符串中还未被eval()解析所以不会出现函数提升
eval("function test(){console.log('test')}");
//在严格模式下' use strict’;
//直接给 eval = 8 赋值将会返回报错 即
(function() {
'use strict';
eval('var a = 123');
console.log(a) //此时a报错
}())
error,指程序中的非正常运行状态,在其他编程语言中称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。
创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式。两种方式创建出来的对象是一样的,有相同的属性和方法。这些属性内部都有描述其行为的属性描述符。
在 JavaScript 中,对象是拥有属性和方法的数据集合;JavaScript对象是被称为属性和方法的命名值的容器。包含在对象里的数据可以通过两种形式访问-属性和方法。JavaScript中的所有事物都是对象:
在写程序的时候会定义很多变量和函数,那js解析器是如何找到这些变量和函数的?变量对象是与执行上下文对应的概念,在执行上下文的创建阶段,它依次存储着在上下文中定义的以下内容:函数的所有形参、所有函数声明、所有变量声明
hasOwnProperty():返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。isPrototypeOf():用于测试一个对象是否存在于另一个对象的原型链上。toString():返回一个表示该对象的字符串。
arguments 是一个类数组对象。代表传给一个function的参数列表。乍一看,结果是个数组,但并不是真正的数组,所以说 arguments 是一个类数组的对象(想了解真正数组与类数组对象的区别可以一直翻到最后)。
检查一个数组为空很容易,直接调用 length 方法即可,那么如何检查一个对象是否为空呢 ❓这里的空指的是对象没有自有属性,假设这里有两个对象,一个是 obj 一个是 anotherObj
这篇文章讲解Js数组和对象的一些使用技巧,如何将不同的数组,对象合并/结合为1个的方法
JavaScript 是一种易于学习的编程语言,编写运行并执行某些操作的程序很容易。然而,要编写一段干净的JavaScript 代码是很困难的。在本文中,我们将介绍一些优化 JS 类和对象的重构思路。
JavaScript 中,对象是 键/值 对的集合。值可以包含属性和方法,并且可以包含所有其他 JavaScript 数据类型,例如字符串,数字和布尔值。JavaScript中的所有对象都来自父 Object 的构造函数。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!