摘要:中具有兩種數(shù)據(jù)類型的值,分別是基本類型值和引用類型值。在中,基本類型值指的是簡單的數(shù)據(jù)段,引用類型值指那些可能由多個(gè)值構(gòu)成的對(duì)象。基本數(shù)據(jù)類型基本數(shù)據(jù)類型未定義的值的默認(rèn)值尚未存在的對(duì)象數(shù)字字符串。
整理以及總結(jié)一下,回溯下基礎(chǔ)。
ECMAScript中具有兩種數(shù)據(jù)類型的值,分別是 基本類型值和引用類型值。
在ECMAScript中,基本類型值指的是簡單的數(shù)據(jù)段,引用類型值指那些可能由多個(gè)值構(gòu)成的對(duì)象。
基本數(shù)據(jù)類型基本數(shù)據(jù)類型:undefined(未定義的值的默認(rèn)值) null(尚未存在的對(duì)象) boolean(true or false) number(數(shù)字) string(字符串)。
基本類型的值不能添加屬性。
var str = "I am basic"; str.type="basic";//it is wrong!!!
這五種數(shù)據(jù)類型是按值訪問的,也就是操作的是保存在變量中實(shí)際的值,改變了就是改變了。
引用類型:這種類型就是在操作的時(shí)候,操作的是其自身的引用,而不是實(shí)際的對(duì)象。當(dāng)然這一塊還要再細(xì)化一點(diǎn),當(dāng)操作動(dòng)作是復(fù)制時(shí),操作的是對(duì)象的引用。當(dāng)操作動(dòng)作是添加時(shí),操作的是實(shí)際的對(duì)象。
下面說說一些操作以及開發(fā)中的注意點(diǎn)
基本操作基本類型:就是復(fù)制,copy,你會(huì)得到兩個(gè)一模一樣的東西,并且這兩個(gè)之間是相互獨(dú)立的
var a = 111; var b = a; a+=10; console.log(a);//121 console.log(b);//111
引用類型:引用類型在接受到復(fù)制操作這個(gè)命令時(shí),也是會(huì)把變量對(duì)象中的值復(fù)制一份放到一個(gè)新的空間中。但是,這個(gè)值并不是真正的值,而是一個(gè)指針或者說是路徑,它指向了存儲(chǔ)在堆中的一個(gè)對(duì)象。復(fù)制之后的這兩個(gè)變量只是兩個(gè)指針,指向同一個(gè)地方。
這樣的話,改變一個(gè),另一個(gè)也得變化。
var a ={}; var b=a; a.age=18; console.log(b.age);//18拷貝操作
所以在日常開發(fā)中,經(jīng)常會(huì)用到對(duì)象的賦值操作,這里直接用‘=’可能會(huì)引起不必要的一些bug,這里一般用一些方法避免掉。
for循環(huán),鍵值對(duì)應(yīng)賦值,數(shù)據(jù)對(duì)象都可以,這里要注意一個(gè)深淺拷貝,深拷貝要對(duì)當(dāng)前對(duì)象的所有的屬性進(jìn)行遍歷賦值
深入剖析 JavaScript 的深復(fù)制
arrB=arrA.slice(0)
js的數(shù)組操作方法 slice會(huì)返回一個(gè)新的數(shù)組,接受兩個(gè)參數(shù)(start,end),如果沒有傳end,默認(rèn)為從start到數(shù)組尾部.
arrB=arrA.concat()
js的數(shù)組操作方法,同樣返回一個(gè)新數(shù)組。
var arrA=[1,2,3]; var [...arrB]=arrA; console.log(arrB)//[1,2,3]
這里用上了es6的擴(kuò)展運(yùn)算符,原理就是先拆掉再放進(jìn)數(shù)組里。
var objB=JSON.parse(JSON.stringify(objA))
拷貝一個(gè)字符串(基本類型)會(huì)新開辟出一個(gè)存儲(chǔ)地址,這樣就沒有之前的引用了。
var objA={"name":"11","age":"22"} var {...objB}=objA;
是的,這樣也可以的。。。
這樣開發(fā)中可以根據(jù)需要復(fù)制的數(shù)據(jù)來選擇相對(duì)簡單方便的方法。
小結(jié)非?;A(chǔ)的知識(shí)點(diǎn)了,但是開發(fā)中不注意也會(huì)引起不必要的麻煩,同時(shí)在日常開發(fā)中可以針對(duì)不同的需求提前寫好工具函數(shù),統(tǒng)一起來。方法多不一定是好事,群魔亂舞。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93252.html
摘要:前綴規(guī)范每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對(duì)象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語言。布爾值與字符串相加將布爾值強(qiáng)制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當(dāng)解釋器。js執(zhí)行時(shí),在同一個(gè)作用域內(nèi)是先解釋再執(zhí)行。解釋的時(shí)候會(huì)編譯function和var這兩個(gè)關(guān)鍵詞定義的變量,編譯完成后從...
摘要:設(shè)計(jì)模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開始接觸的時(shí)候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計(jì)模式必須要先搞懂面向?qū)ο缶幊?,否則只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...
摘要:被識(shí)別為結(jié)束符。變量時(shí)被認(rèn)為時(shí)有名字的容器。常量一旦被聲明初始化,值并不能被改變。字符串可以看成右字符組成的數(shù)組,可能被誤認(rèn)為可變的。表達(dá)式?jīng)]有顯示的返回任何內(nèi)容。 Java script 簡介 Javascript 是一門跨平臺(tái),面向?qū)ο蟮妮p量級(jí)腳本語言,運(yùn)行于Javascript解釋權(quán)/引擎 avascript內(nèi)置了一個(gè)包含一系列對(duì)象的標(biāo)準(zhǔn)庫,比如數(shù)組,日期,數(shù)字和一個(gè)語言元素合...
摘要:中有種基本數(shù)據(jù)類型和。在介紹的基本數(shù)據(jù)類型前,有必要提到兩個(gè)關(guān)鍵字和。由于中的變量是松散類型的,所以它提供了一種檢測(cè)當(dāng)前變量的數(shù)據(jù)類型的方法,也就是關(guān)鍵字。輸出的結(jié)果為用于表示由零數(shù)字或字符組成的字符序列,即字符串。 如果你是一名IT前端人員,怎么會(huì)不懂JavaScript的美?如果你是一名前端在學(xué)人員,接觸JavaScript后,怎么會(huì)不明白JavaScript中基本數(shù)據(jù)類型?大家都...
摘要:以和為例,說明中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。對(duì)象用來表示通用的固定長度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū)。中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)對(duì)和有了一個(gè)大概的了解,下面讓我們來看下它是如何進(jìn)行二進(jìn)制數(shù)據(jù)操作的。 概述 本文主要通過對(duì)JavaScript中數(shù)字?jǐn)?shù)據(jù)與二進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換,讓讀者能夠了解在JavaScript中如何對(duì)數(shù)字類型(包括但不限于Number類型)進(jìn)行處理。 二進(jìn)制數(shù)據(jù)在日常...
摘要:基于對(duì)象字面量,但是獨(dú)立于任何編程語言,真正重要的是表示法本身,所以在學(xué)習(xí)之前不必先學(xué)習(xí)。鍵必須是字符串,值可以是合法的數(shù)據(jù)類型字符串?dāng)?shù)字對(duì)象數(shù)組布爾值或。布爾類型中的布爾值僅可使用小寫形式或,其他任何寫法都會(huì)報(bào)錯(cuò)。 什么是JSON JSON全稱是Javascript Object Notation(對(duì)象表示法),是一種在不同平臺(tái)間傳遞數(shù)據(jù)的文本格式(數(shù)據(jù)交換格式)。常見的數(shù)據(jù)交換格式...
閱讀 2774·2021-11-17 09:33
閱讀 3109·2021-10-25 09:44
閱讀 1216·2021-10-11 10:59
閱讀 2410·2021-09-27 13:34
閱讀 2918·2021-09-07 10:19
閱讀 2146·2019-08-29 18:46
閱讀 1541·2019-08-29 12:55
閱讀 935·2019-08-23 17:11