日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

js數(shù)據(jù)類型與類型轉(zhuǎn)換

freeflydom
2025年6月5日 9:53 本文熱度 534

在程序語言中,數(shù)據(jù)類型是基礎(chǔ),一切程序都是建立在基礎(chǔ)數(shù)據(jù)之上。

如果說程序如同萬丈高樓平地起,那么數(shù)據(jù)類型就像沙、石、鋼筋、水泥等等最基礎(chǔ)的原料。一樣的高樓,不同的人,用相同的原料,造的方法也會(huì)有千般變化。

在 JS 中,數(shù)據(jù)類型可以分為 原始類型 和 對象類型

原始類型

直接存儲(chǔ)值,不可變(值的地址不可變),共 7 種:

1、number 數(shù)值類型,包括整數(shù)、浮點(diǎn)數(shù)、Infinity、NaN。

const num1 = 123;
const num2 = 123.456;
const num3 = Infinity;
const num4 = NaN;
const num5 = new Number(456); // 使用構(gòu)造函數(shù)聲明,獲得一個(gè) Number 對象
console.log(typeof num5); // object
const num6 = Number(456); // 函數(shù)式聲明 Number 類型
console.log(typeof num6); // number

2、string 字符串類型。單雙引號聲明的字符串不允許換行,可使用反引號申明多行字符串和模版字符串。

const str1 = 'hello'; // JS 中聲明字符串允許單引號和雙引號
const str1_1 = '\'hello\''; // 單引號中還有單引號需要使用反斜線轉(zhuǎn)義字符串
const str2 = " world";
const str3 = str1 + str2; // 字符串拼接,獲得 hello world
const str4 = `前端路引
${str1}${str2}`; // 多行模版字符串聲明,允許有換行和變量存在, ${str1}${str2} 表示拼接兩個(gè)變量
const str5 = new String('前端路引');
console.log(typeof str5); // object
const str6 = String('前端路引');
console.log(typeof str6); // number

3、boolean 布爾值(true/false)。

const bool1 = true;
const bool2 = false;
const bool3 = new Boolean(true);
console.log(typeof bool3); // object
const bool4 = Boolean(true);
console.log(typeof bool4); // boolean

4、null 表示空值。

const empty = null;
console.log(typeof empty); // object

5、undefined 未定義的值。

let u1; // 未聲明變量,默認(rèn)為 undefined
const u2 = undefined; // 顯示使用 undefined 聲明變量

6、symbol 唯一且不可變的值(符號)。就算使用 Symbol 聲明的內(nèi)容一樣,但是兩個(gè)變量其實(shí)是不相等的?。?/p>

const sym1 = Symbol('前端路引'); // 帶描述的符號
const sym2 = Symbol('前端路引');
console.log(sym1 === sym2); // false
const sym3 = Symbol.for('前端路引'); // 全局符號
const sym4 = Symbol.for('前端路引');
console.log(sym3 === sym4); // true
console.log(Symbol.keyFor(sym3)); // 前端路引
const sym5 = Symbol(); // 不帶描述的符號

7、bigint 大整數(shù)(以 n 結(jié)尾,如 123n),一般用于表示大于 2^53 - 1 的整數(shù),ES2020+ 引入的新的數(shù)據(jù)類型,使用時(shí)需注意兼容性。

const big1 = 123n;
const big2 = BigInt(123);
console.log(big1 === big2); // true
console.log(typeof big1); // bigint
console.log(big1 === 123) // false
console.log(big1 === 123n); // true

對象類型

存儲(chǔ)引用(內(nèi)存地址),可變,包含所有非原始類型的值:

1、普通對象

const obj1 = {}; // 創(chuàng)建一個(gè)空對象
const obj2 = { name: '前端路引', age: 1 }; // 帶屬性的對象
const obj3 = new Object(); // 使用構(gòu)造函數(shù)創(chuàng)建對象
const obj4 = Object({name: '前端路引'});

2、數(shù)組

const arr1 = []; // 空數(shù)組
const arr2 = [1, 2, 3]; // 帶元素的數(shù)組
const arr3 = new Array();
const arr4 = Array(10).fill('前端路引'); // 創(chuàng)建一個(gè)長度為 10 的數(shù)組,并填充內(nèi)容

3、函數(shù)

function func1() {
  console.log('Function 1');
}
const func2 = function() {
  console.log('Function 2');
};
const func3 = () => {
  console.log('Function 3');
};

除了基礎(chǔ)的三種基礎(chǔ)對象類型外,JS 還內(nèi)置了很多其他對象,比如 Date、RegExp、Error、Map、Set、WeakMap、WeakSet、Promise、Proxy、ArrayBuffer 等。

類型轉(zhuǎn)換

JS 的類型轉(zhuǎn)換分為隱式轉(zhuǎn)換(明確表明由 A 轉(zhuǎn)為 B)和顯式轉(zhuǎn)換(自動(dòng)發(fā)生的類型轉(zhuǎn)換)。

顯式轉(zhuǎn)換

通過對象方法強(qiáng)制轉(zhuǎn)換:

1、轉(zhuǎn)字符串

String(123);      // "123"
[1,2].toString(); // "1,2"

2、轉(zhuǎn)數(shù)字

Number("123");   // 123
Number("abc");   // NaN
parseInt("14px");// 12

3、轉(zhuǎn)布爾

Boolean("");     // false
Boolean({});     // true

隱式轉(zhuǎn)換

一半多發(fā)生于運(yùn)算符,比如:

1、字符串拼接

console.log('1' + 1); // 11
console.log(1 + '1'); // 11

2、數(shù)學(xué)運(yùn)算

console.log('1' - 1); // 0
console.log(1 - '1'); // 0
console.log('1' * 1); // 1
console.log(1 * '1'); // 1
console.log('1' / 1); // 1
console.log(1 / '1'); // 1

3、邏輯運(yùn)算

if (0) { // 0 為 false,將不會(huì)執(zhí)行代碼塊
  console.log('0');
}

常見轉(zhuǎn)換規(guī)則

原始值轉(zhuǎn)字符串轉(zhuǎn)數(shù)字轉(zhuǎn)布爾值
true"true"1true
false"false"0false
0"0"0false
""""0false
"123""123"123true
null"null"0false
undefined"undefined"NaNfalse
NaN"NaN"NaNfalse
[]""0true
[5]"5"5true
{}"[object Object]"NaNtrue

常見陷阱與最佳實(shí)踐

1、== vs ===

  • == 會(huì)進(jìn)行類型轉(zhuǎn)換: 0 == false 為 true
  • === 嚴(yán)格比較類型和值,推薦使用。

2、NaN的判斷

  • NaN === NaN 為 false,使用 Number.isNaN(value) 或 Object.is(value, NaN)。

3、對象轉(zhuǎn)換

  • 對象轉(zhuǎn)原始值時(shí),優(yōu)先調(diào)用 valueOf(),再 toString()。
  • {} + [] 可能被解析為代碼塊,導(dǎo)致結(jié)果意外。

4、parseInt基數(shù)

  • 總是指定基數(shù):parseInt("08", 10) 避免八進(jìn)制誤解。

寫在最后

由于 JavaScript 屬于弱類型語言,所以在編碼時(shí)候特別需要注意類型轉(zhuǎn)換問題。特常見問題:后端返回的數(shù)據(jù)類型是字符串 '1',在前端當(dāng)做數(shù)字 1 使用,這時(shí)候分分鐘踩雷。

轉(zhuǎn)自https://www.cnblogs.com/linx/p/18890277


該文章在 2025/6/5 9:53:36 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

久久69老好伦…| 成人日韩影院| 人妻久一区| 精东精品一区二区| 91媚黑熟妇| 欧美久久黄色毛片视| 女人操逼在线国产古代女人| 欧美日韩加勒比精品人妻一区| 在线视频国产你懂的精品国产| 大香蕉97成人免费在线观看| 日韩av无码乱码精品国产| 国产一区二区伦里视屏| 国产一区二区精品按摩| 中文字幕av免费专区久久| 日韩一区三级电影| av青青国产在线| 成人三级电影小说网站| 91精品视频中心| 一区二楼三区免费在线观看乱码| 欧美fe黄片| 久久中文无码网| 人妻色精品| 又大又粗又长日韩| 大鸡巴搞人妻| 大香蕉久久久精品久久精品| 静品人妻一区二区| caoporn 超碰公开| 操日本女人在线观看| 男人天堂av播放器| 一级性色as级成人影院| 欧美日本亚洲熟女逼逼熟| 精品综合88久久| 三级黄色不卞aV| 亚洲人成网激情A V首页| www.国产开裆黑丝av| www.青青草AVav.cm| 欧美日韩性天堂| 青青色资源| 久久美女内射| 日本理论图片视频| 大屁股少妇后入内射|