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

网站建设好后打开是目录文件用手机做自己的网站

网站建设好后打开是目录文件,用手机做自己的网站,金坛常州做网站,网络营销案例Javascript的数据类型 1.基本数据类型1.1七种基本数据类型1.2单独说说BigInt‌1.3其它注意点 2.引用数据类型3.基本数据类型和引用数据类型的区别4.双等于号和三等于号的区别5.Javascript的类型转换机制5.1显示转换(强制转换)5.2隐式转换(1)减、乘、除(2)加(加法要区别算,因为不…

Javascript的数据类型

  • 1.基本数据类型
    • 1.1七种基本数据类型
    • 1.2单独说说BigInt‌
    • 1.3其它注意点
  • 2.引用数据类型
  • 3.基本数据类型和引用数据类型的区别
  • 4.双等于号和三等于号的区别
  • 5.Javascript的类型转换机制
    • 5.1显示转换(强制转换)
    • 5.2隐式转换
      • (1)减、乘、除
      • (2)加(加法要区别算,因为+不仅仅是加法,还可以拼接)
      • (3)单个变量
      • (4)ToPrimitive原则

‌JavaScript主要有两种类型:基本数据类型和复杂数据类型‌(引用数据类型)。

1.基本数据类型

1.1七种基本数据类型

  • Boolean‌:表示逻辑值,只有两个值:true 和 false。
  • Number‌:表示数值,可以是整数或浮点数。‌
  • String‌:表示文本数据,用引号括起来。
  • ‌Undefined‌:表示未定义的值。‌
  • Null‌:表示空值,通常用于表示对象不存在或没有初始化。‌
  • Symbol‌(ES6 引入):一种唯一的、不可变的数据类型,通常用于作为对象属性的标识符。‌
  • BigInt‌(ES6 引入):表示大整数,用于处理超出普通数字范围的值。

1.2单独说说BigInt‌

在 JavaScript 中,最大的安全整数是 2 的 53 次方减 1,即 Number.MAX_SAFE_INTEGER,其值为 9007199254740991。这是因为 JavaScript 中使用双精度浮点数表示数字,双精度浮点数的符号位占 1 位,指数位占 11 位,尾数位占 52 位,因此能够准确表示的整数范围是有限的。超过这个范围的整数可能会失去精度。

//超过了2**53-1后精度会缺失
console.log(2 ** 53 - 1); //9007199254740991
console.log(Number.MAX_SAFE_INTEGER); //9007199254740991
console.log(2 ** 53); //9007199254740992
console.log(2 ** 53 + 1); //9007199254740992
console.log(2 ** 53 + 2); //9007199254740994
console.log(2 ** 53 + 3); //9007199254740996
console.log(2 ** 53 + 4); //9007199254740996

在这里插入图片描述
BigInt 是 JavaScript 中引入的一种新的数据类型,用于表示任意精度的整数。与普通的数字类型不同,BigInt 可以表示超出 Number.MAX_SAFE_INTEGER 的整数值,因此它可以用于处理非常大的整数,而不会丢失精度。

要创建 BigInt,可以在整数值后面添加 n 或调用 BigInt() 函数并将整数作为参数传递。

console.log(5648941287894651132156549781132n);
console.log(BigInt("5648941287894651132156549781132"));

在这里插入图片描述
Biglnt不能和普通的数字进行混合运算,只能使用Biglnt类型进行运算。

console.log(10000n + 10000n); //20000n
console.log(45612316546871512315645487n * 312121100n); //14236566414157737982622816612475700n
console.log(45612316546871512315645487 * 312121100n);//报错

比较运算符:

console.log(20n > 15); //true
console.log(20n === 20); //===不会做强制类型转换,false
console.log(typeof 20n); //类型为bigint
console.log(20n == "20"); //==不会严格比较,true

1.3其它注意点

console.log(typeof NaN); //number
console.log(typeof null); //object
console.log(undefined == null); //true
console.log(undefined === null); //false

2.引用数据类型

  • Object
  • Array
  • Function
  • RegExp
  • Date
  • Map
  • Set

3.基本数据类型和引用数据类型的区别

基本数据类型和引用数据类型本质的不同是存储上的区别

基本数据类型的值直接存储在栈内存中,值与值之间独立存在,修改一个变量不会影响到其他变量。对象(引用数据类型)是保存在堆内存中的,每创建一个新对象,就会在堆内存中开辟出一个新空间,变量保存的是对象的内存地址(对象的引用)如果两个变量保存的是同一个对象引用,当其中一个通过变量修改属性时,另一个也会受到影响‌。(很多地方都碰到过这种情况)

4.双等于号和三等于号的区别

=== 判断两边数据是否全等,即数据类型与值均相等。而 == 只判断是否相等。

5.Javascript的类型转换机制

5.1显示转换(强制转换)

  • Number()
  • parseInt()
  • Boolean()
  • String()

5.2隐式转换

当运算符两端的数据类型不一致,会触发隐式转换。

(1)减、乘、除

在对非Number 类型运用数学运算符(-*/)时,会先将非 Number 类型转换为 Number 类型再进行计算。示例如下:

console.log('a'-'b')//NaN
console.log(3-true)//2
console.log(3-null)//3
console.log(3-undefined)//NaN
console.log(false-null)//0
console.log(function (){}-0)//NaN

注意:在算术运算中,如果操作数中有 undefined,其运算结果是就是 NaNnull 在算术运算中则是隐式转换为数值 0 来参与运算。

(2)加(加法要区别算,因为+不仅仅是加法,还可以拼接)

加法运算遵守以下 3 条规则,优先级从高到低

  • 当一侧为 String 类型,被识别为字符串拼接,并会优先将另一侧转换为字符串类型。
  • 当一侧为 Number 类型,另一侧为原始类型,则将原始类型转换为 Number 类型。
  • 当一侧为 Number 类型,另一侧为引用类型,将引用类型和 Number 类型转换成字符串后拼接。

(3)单个变量

如果只有单个变量,会先将变量转换为 Boolean 值。只有 nullundefined''NaN0false 这几个会被转换为 false,其他的情况都是 true,比如 {} , [] 等。

(4)ToPrimitive原则

ToPrimitive 规则会尝试调用对象的 valueOftoString 方法,将参数转换为原始类型。

当对象类型需要转为原始类型时,它会先查找对象的 valueOf 方法,如果 valueOf 方法返回原始类型的值,则 ToPrimitive 的结果就是这个值,如果 valueOf 不存在或者 valueOf 方法返回的不是原始类型的值,就会尝试调用对象的 toString 方法,也就是会遵循对象的 ToString 规则,然后使用toString 的返回值作为 ToPrimitive 的结果。

  let str = new String(1)  // 通过 new String 创建了一个对象console.log(typeof str)  // objectconsole.log(str.valueOf())  // "1"console.log(typeof str.valueOf())  // stringconst obj = {valueOf() {return 1},toString() {return 2}}console.log(Number(obj))  // 1

注意:如果 valueOftoString 都没有返回原始类型的值,则会抛出异常。

const obj = {valueOf() {return []},toString() {return {}}
}
console.log(Number(obj))  // TypeError: Cannot convert object to primitive value

特殊:

String({})  // [object Object]
Number([])  // 0

String({}) 空对象会先调用 valueOf,但返回的是对象本身 {},不是原始类型,所以会继续调用toString,得到 [object Object]String([object Object]),所以转换后的结果为 [object Object]
Number([]) 空数组会先调用 valueOf,但返回的是数组本身 [],不是原始类型,所以会继续调用toString,得到 '',相当于 Number(''),所以转换后的结果为 0

http://www.dtcms.com/a/493330.html

相关文章:

  • 镇江大港南站2021网页设计尺寸
  • 网站做百度竞价深圳网站设计价格
  • 湖北省建设工程造价管理站网站网站建设合同制人员招聘
  • 如何做企业网站开发昆明网页重做
  • 蚌埠市建设学校网站企业培训课程开发
  • 免费企业建站选哪家什么软件推广效果好
  • 网站建设的相关技术方案东莞设计展
  • 个人性质网站名称网络推广工作室 是干啥的
  • 网站建设采用的技术网站正在建设中空白模板
  • 什么网站做污水处理药剂的好seo一键优化
  • 创建一个自己的网站的步骤深圳注册公司需要什么条件
  • 光谷做网站推广费用wordpress二级域名做站群
  • 只有一个页面的网站残联网站建设方案
  • 站长工具app下载智联招聘网站怎么做微招聘
  • 网站建设宣传的目的此网站不支持下载视频怎么办
  • 网站建设类毕业设计wordpress页面和自定义链接地址
  • 徐州网站建设培训泰州网站设计哪家好
  • 网站后台更新图片做网站推广弊端
  • 门户网站的基本功能wordpress直播插件
  • 深圳 高端网站建设宝安长春电商网站建设哪家好
  • 用php做的网站有会员中心网站模板
  • 淘宝内部优惠券网站怎么做租房合同 模板
  • 甘肃省通信管理局 网站备案网页设计版面划分
  • 惠州高端模板建站网站设计公司深圳
  • 装修公司网站模板下载重庆企业建站程序
  • 花店网站建设方案中山网络推广
  • 郑州网站建设 易云互联烟台网站制作效果
  • 上海的加盟网站建设wordpress英文站源码
  • 北京网站建设排名做一个网站前端页面多少钱
  • 东莞网站推广排名可视化开发