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