当前位置: 首页> 教育> 培训 > 南昌网络营销外包公司全力以赴_能自制游戏的手机软件_seo入门课程_关键词怎么写

南昌网络营销外包公司全力以赴_能自制游戏的手机软件_seo入门课程_关键词怎么写

时间:2025/8/28 17:11:25来源:https://blog.csdn.net/weixin_50756332/article/details/144832685 浏览次数:0次
南昌网络营销外包公司全力以赴_能自制游戏的手机软件_seo入门课程_关键词怎么写

JS部分内容可以查看MDN文档:https://developer.mozilla.org/zh-CN/ 

一、基本类型

  1. 数字(number)  用于表示数值,可以是整数或浮点数。【NaN、Infinity都是Number类型】
  2. 字符串(string)  用于表示文本内容。由单引号(')、双引号(")、反引号(`)包含的字符组成
  3. 布尔值(boolean)        只有true和false两个值,用于条件判断和罗技运算
  4. 空(null)         空对象指针,表示变量不引用任何对象,表示没有值的特殊类型。typeof检测null返回Object,说明null本身是Object未引用的状态。
  5. 未定义(undefined)   表示未赋值的变量。(1)当变量声明没有赋初始值时,默认为undefined。(2)调用函数时,函数定义的参数未接收,默认参数值为undefined。(3)定义对象的属性未赋值时,默认为undefined。(4)函数没有返回值,则默认返回undefined。

null和undefined的区别

Null只有一个值,是null。不存在对象。

Undefined只有一个值,是undefined。没有初始化。undefined是从null中派生出来的。

简单理解就是:undefined是没有定义的,null是定义了但是为空。

面向对象编程中一切皆对象(Object),但是对象又分为很多类型(对象属于引用型数据,因此这些分类又叫引用类型)。

内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发

在JavaScript中,内置对象可以在任何地方直接使用,而不需要额外的导入或安装。这些内置对象提供了丰富的功能和方法,方便我们进行各种操作和处理。

全局对象(window)、数据类型对象(String、Array)、日期和时间对象(Date)、以及数学(Math)对象都是常用的内置对象。

二、引用类型

引用数据类型的原型,都是Object类型

  1. 对象(Object):对象是引用类型的基础,它是一组无序的键值对集合。对象可以使用字面量构造函数或者Object.create()方法来创建。
  2. 数组(Array):数组是一种特殊的对象,其中的值按照数字索引(从零开始)进行存储。数组可以使用字面量Array构造函数来创建。
  3. 函数(Function):函数可以接收参数,执行一些操作并返回值。可以使用Function构造函数函数声明或者函数表达式来创建函数。【(1)函数声明、又叫函数定义:function 函数名( 参数列表 ) {函数体};(2)函数表达式,又叫函数字面量:let 函数名 = function xxx(参数列表) { 函数体 };(3)构造函数:let 函数名 = new Function("参数1", "参数2", "参数3", "函数体(return 返回值)");】
  4. 日期(Date):日期对象用于处理日期和时间,可以获取设置和计算日期和时间。
  5. 正则表达式(RegExp):正则表达式可以用来匹配和操作字符串。它由一个模式和一些可选的标志组成,可以进行字符匹配、替换和提取等操作。
  6. 错误对象(Error):let myError = new Error("This is an error message");
  7. Math对象(内置对象):它是一个内置对象,提供数学函数和常量
  8. JSON对象:JSON是一种用于表示数据的格式,虽然JSON是一种数据格式,但在JS中,一般解析为对象。【常用方法:JSON.stringify(对象转成JSON字符串),JSON.parse(JSON字符串转为对象)】

引用类型保存在堆内存中。

三、ES6中提供的数据类型

  1. Symbol:Symbol是一种原始数据类型,表示一个唯一的标识符。它可以用作对象属性的键,用于创建唯一的常量数值。Symbol类型的对象永远不相等,即便创建的时候传入相同的值,因此可以用来解决属性名冲突的问题。【Symbol("snow") !== Symbol("snow")  //true 】
  2. Set:Set是一种新的集合数据结构,它允许存储任何类型的唯一值,Set中的值是无序的,且保持插入顺序。【类似于数组,(1)(特性)但成员的值都是唯一的,没有重复的值。(2)Set内部使用类似于Hash表的机制,所以插入和查找的效率很高,都为O(1)。(3)使用Set可以很容易地实现并集(Union)、交集(Intersection)、和差集(Difference)操作,因此非常适合用于处理集合运算】例子如下:
    <script>// 创建一个 Set 对象const mySet = new Set();// 添加成员mySet.add(1);mySet.add(2);mySet.add(2); // 添加重复成员,Set 会自动去重mySet.add(3);// 检查成员是否存在console.log(mySet.has(1)); // 输出: trueconsole.log(mySet.has(4)); // 输出: false// 删除成员mySet.delete(2);console.log(mySet.has(2)); // 输出: false// 获取 Set 的大小console.log(mySet.size); // 输出: 2// 遍历 Set 成员for (let item of mySet) {console.log(item); // 输出: 1 3}console.log(mySet); //Set(2){1, 3}</script>

    由于set的成员都是唯一的,所以经常用于需要去除数组中重复元素的场景。还有一些常用的方法。clear()从 set 对象中移除所有元素。keys() 和 values()方法等价。entries()方法返回一个新的迭代器对象,更多方法可以看mdn官网:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set#%E5%AE%9E%E4%BE%8B%E6%96%B9%E6%B3%95

  3. Map:Map是一种新的键值对数据结构,它类似于对象,但可以使用任意类型的值作为键,并且保持插入顺序。
  4. WeakSet:WeakSet是一种特殊的Set,它只能存储对象,并且对于存储的对象是弱引用,即如果没有其他引用指向这个对象,它将被垃圾回收。
  5. WeakMap:WeakMap是一种特殊的Map,它只能使用对象作为键,对于键所引用的对象是弱引用,即如果没有其他引用指向这个对象,它将被被垃圾回收掉。

ES6新增特性增强现有数据类型

  1. let和const关键字:用于声明块级作用域的变量(let)和常量(const)。
  2. Arrow function(箭头函数):一种更简洁的函数声明语法,提供了更方便的this绑定和更短的函数体写法
  3. Class(类):引入了class关键字,用于定义类和面向对象的编程
  4. Promise(Promise对象):用于异步操作的解决方案,可以更优雅地处理异步编程。

BigInt是在ES2020中引入的一种新的数据类型,用于表示任意大小的整数。ES6的Number类型可以操作很大范围的数值,但精度有限,超过2^53-1的整数,JS的Number类型无法精确表示。而BigInt的出现解决了这个问题,允许JS能够安全地表示和操作任意大小的整数

但是BigInt和JS的其他数字类型(如Number)是不兼容的,无法直接进行算术运算。运算的时候需要将BigInt转换为Number,或者Number转换为BigInt,但这样可能导致精度损失和溢出。在使用BigInt的时候要特别注意数据类型转换和精度问题。

‌(1)在前端将BigInt类型的数据传递给后端时,通常不会丢失精度‌。

(2)使用 BigInt 函数,需要注意,如果传入的是字符串类型的数字,则不会丢失精度;如果是整数,传参过程中可能会丢失精度‌。123n。

(3)在前后端分离的项目中,后端返回的数据可能因为长度过长而在前端解析时出现精度丢失。可以使用 json-bigint 插件来处理这个问题。安装该插件后,可以在Axios的配置中添加transformResponse选项,使用 JSONBig.parse(data) 来解析响应数据,从而保持大数的精度‌。

关键字:南昌网络营销外包公司全力以赴_能自制游戏的手机软件_seo入门课程_关键词怎么写

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: