金华市建设技工学校网站沈丘做网站yooker

当前位置: 首页 > news >正文

金华市建设技工学校网站,沈丘做网站yooker,百货店怎么做网站送货,全美网站建设一、JavaScript有哪些内置对象 全局的对象#xff08; global objects #xff09;或称标准内置对象#xff0c;不要和 全局对象#xff08;global object#xff09; 混淆。这里说的全局的对象是说在全局作用域里的对象。全局作用域中的其他对象可以由用户的…一、JavaScript有哪些内置对象 全局的对象 global objects 或称标准内置对象不要和 全局对象global object 混淆。这里说的全局的对象是说在全局作用域里的对象。全局作用域中的其他对象可以由用户的脚本创建或由宿主程序提供。 标准内置对象的分类 1值属性这些全局属性返回一个简单值这些值没有自己的属性和方法。 例如 Infinity、NaN、undefined、null 字面量 2函数属性全局函数可以直接调用不需要在调用时指定所属对象执行结束后会将结果直接返回给调用者。 例如 eval()、parseFloat()、parseInt() 等 3基本对象基本对象是定义或使用其他对象的基础。基本对象包括一般对象、函数对象和错误对象。 例如 Object、Function、Boolean、Symbol、Error 等 4数字和日期对象用来表示数字、日期和执行数学计算的对象。 例如 Number、Math、Date 5字符串用来表示和操作字符串的对象。 例如 String、RegExp 6可索引的集合对象这些对象表示按照索引值来排序的数据集合包括数组和类型数组以及类数组结构的对象。例如 Array 7使用键的集合对象这些集合对象在存储数据时会使用到键支持按照插入顺序来迭代元素。 例如 Map、Set、WeakMap、WeakSet 8矢量集合SIMD 矢量集合中的数据会被组织为一个数据序列。 例如 SIMD 等 9结构化数据这些对象用来表示和操作结构化的缓冲区数据或使用 JSON 编码的数据。 例如 JSON 等 10控制抽象对象 例如 Promise、Generator 等 11反射 例如 Reflect、Proxy 12国际化为了支持多语言处理而加入 ECMAScript 的对象。 例如 Intl、Intl.Collator 等 13WebAssembly 14其他 例如 arguments 总结 js 中的内置对象主要指的是在程序执行前存在全局作用域里的由 js 定义的一些全局值属性、函数和用来实例化其他对象的构造函数对象。一般经常用到的如全局变量值 NaN、undefined全局函数如 parseInt()、parseFloat() 用来实例化对象的构造函数如 Date、Object 等还有提供数学计算的单体内置对象如 Math 对象。 二、强类型语言和弱类型语言的区别 强类型语言强类型语言也称为强类型定义语言是一种总是强制类型定义的语言要求变量的使用要严格符合定义所有变量都必须先定义后使用。Java和C等语言都是强制类型定义的也就是说一旦一个变量被指定了某个数据类型如果不经过强制转换那么它就永远是这个数据类型了。例如你有一个整数如果不显式地进行转换你不能将其视为一个字符串。弱类型语言弱类型语言也称为弱类型定义语言与强类型定义相反。JavaScript语言就属于弱类型语言。简单理解就是一种变量类型可以被忽略的语言。比如JavaScript是弱类型定义的在JavaScript中就可以将字符串12和整数3进行连接得到字符串123在相加的时候会进行强制类型转换。 两者对比强类型语言在速度上可能略逊色于弱类型语言但是强类型语言带来的严谨性可以有效地帮助避免许多错误。 三、解释性语言和编译型语言的区别 1解释型语言 使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行而不是在执行之前就完成翻译。解释型语言不需要事先编译其直接将源代码解释成机器码并立即执行所以只要某一平台提供了相应的解释器即可运行该程序。其特点总结如下 解释型语言每次运行都需要将源代码解释称机器码并执行效率较低只要平台提供相应的解释器就可以运行源代码所以可以方便源程序移植JavaScript、Python等属于解释型语言 2编译型语言 使用专门的编译器针对特定的平台将高级语言源代码一次性的编译成可被该平台硬件执行的机器码并包装成该平台所能识别的可执行性程序的格式。在编译型语言写的程序执行之前需要一个专门的编译过程把源代码编译成机器语言的文件如exe格式的文件以后要再运行时直接使用编译结果即可如直接运行exe文件。因为只需编译一次以后运行时不需要编译所以编译型语言执行效率高。其特点总结如下 一次性的编译成平台相关的机器语言文件运行时脱离开发环境运行效率高与特定平台相关一般无法移植到其他平台C、C等属于编译型语言 两者主要区别在于前者源程序编译后即可在该平台运行后者是在运行期间才编译。所以前者运行速度快后者跨平台性好。 四、什么是 JavaScript 中的包装类型 在 JavaScript 中基本类型是没有属性和方法的但是为了便于操作基本类型的值在调用基本类型的属性或方法时 JavaScript 会在后台隐式地将基本类型的值转换为对象如 const a abc; a.length; // 3 a.toUpperCase(); // ABC 在访问 abc.length 时JavaScript 将 abc 在后台转换成 String(abc)然后再访问其 length 属性。 JavaScript也可以使用Object函数显式地将基本类型转换为包装类型 var a abc Object(a) // String {abc} 也可以使用 valueOf 方法将包装类型倒转成基本类型 var a abc var b Object(a) var c b.valueOf() // abc 看看如下代码会打印出什么 var a new Boolean( false ); if (!a) {console.log( Oops ); // never runs } 答案是什么都不会打印因为虽然包裹的基本类型是 false但是 false 被包裹成包装类型后就成了对象所以其非值为 false所以循环体中的内容不会运行。 五、为什么会有BigInt的提案 JavaScript中Number.MAX_SAFE_INTEGER示最⼤安全数字计算结果是9007199254740991即在这个数范围内不会出现精度丢失⼩数除外。但是⼀旦超过这个范围js就会出现计算不准确的情况这在⼤数计算的时候不得不依靠⼀些第三⽅库进⾏解决因此官⽅提出了BigInt来解决此问题。 六、如何提取高度嵌套的对象里的指定属性 有时会遇到一些嵌套程度非常深的对象 const school {classes: {stu: {name: Bob,age: 24,}} } 像此处的 name 这个变量嵌套了四层此时如果仍然尝试老方法来提取它 const { name } school 显然是不奏效的因为 school 这个对象本身是没有 name 这个属性的name 位于 school 对象的“儿子的儿子”对象里面。要想把 name 提取出来一种比较笨的方法是逐层解构 const { classes } school const { stu } classes const { name } stu name // Bob 但是还有一种更标准的做法可以用一行代码来解决这个问题 const { classes: { stu: { name } }} school console.log(name)  // Bob 可以在解构出来的变量名右侧通过冒号{目标属性名}这种形式进一步解构它一直解构到拿到目标数据为止。