摘要:運(yùn)算符用來(lái)測(cè)試一個(gè)對(duì)象在其原型鏈中是否存在一個(gè)構(gòu)造函數(shù)的屬性,但它不能檢測(cè)和作用和非常相似。但檢測(cè)與不一樣,還可以處理基本數(shù)據(jù)類型的檢測(cè)。
數(shù)據(jù)類型
javascript中數(shù)據(jù)類型分為簡(jiǎn)單數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型,今天只學(xué)簡(jiǎn)單數(shù)據(jù)類型 ( 5個(gè) )
number、string、boolean、undefined、null
數(shù)值、字符串、布爾、聲明未賦值、空類型
JavaScript不區(qū)分整數(shù)和浮點(diǎn)類型,統(tǒng)一使用number來(lái)表示
進(jìn)制
在javascript中表示一個(gè)數(shù)字,除了有我們常用的十進(jìn)制11, 22,33等,還可以使用八進(jìn)制、十 六進(jìn)制表示等。
//我們最常用的進(jìn)制,進(jìn)行算術(shù)運(yùn)算的時(shí)候,八進(jìn)制和十六進(jìn)制最終都要轉(zhuǎn)換成二進(jìn)制,計(jì)算機(jī)只識(shí)別二進(jìn)制 //逢10進(jìn)1 var num = 9; var num = 29; // 0開頭的數(shù)字, 逢8進(jìn)1 var num1 = 010; var num2 = 0121; // 八進(jìn)制 0-7 逢八進(jìn)一 , 10 var ba = 0321; // 12 = 2*8^0 + 1*8^1 = 10 // 321 = 1*8^0 + 2*8^1 + 3*8^2 = 1+16+ 192 = 209 console.log(ba); // 十六進(jìn)制 // 0x開頭的數(shù)字,逢16進(jìn)1, 數(shù)字范圍1-9A-F var num = 0xA; var num = 0x12;
浮點(diǎn)數(shù)
浮點(diǎn)數(shù)就是小數(shù),,比如0.1 const num = 0.1; /**** 科學(xué)計(jì)數(shù)法 */ //當(dāng)一次數(shù)字很大的時(shí)候,可以用科學(xué)計(jì)數(shù)法來(lái)表示 var num = 3e+3; //3乘以10的3次方 var num = 2e-2;//2乘以10的-2次方 /***浮點(diǎn)數(shù)丟失精度問(wèn)題*/ //在進(jìn)行浮點(diǎn)數(shù)運(yùn)算的時(shí)候,可能會(huì)出現(xiàn)精度丟失的問(wèn)題 0.1 + 0.2 = 0.30000000000000004; 0.2 + 0.2 = 0.4; //盡量少用浮點(diǎn)數(shù)進(jìn)行運(yùn)算,不要讓浮點(diǎn)數(shù)進(jìn)行比較。 解決辦法 : 根據(jù)小數(shù)點(diǎn)后面的位數(shù)量 乘以對(duì)應(yīng)的整數(shù); 0.2 + 0.3 ==> (0.2*10+0.3*10) / 10 = 0.5 /**** 數(shù)值范圍 **/ 最小值:Number.MIN_VALUE,這個(gè)值為: 5e-324 最大值:Number.MAX_VALUE,這個(gè)值為: 1.7976931348623157e+308 無(wú)窮大:Infinity 1/0 無(wú)窮小:-Infinity字符串類型--String
字符串類型,使用雙引號(hào) " 或者 " 或者 `` 包裹起來(lái)的字符 ``` //雙引號(hào)和單引號(hào)必須成對(duì)出現(xiàn) const str = "hello world"; const str = "hello world"; const num1 = "13"; const num2 = "13"; /******字符串長(zhǎng)度***/ 每一個(gè)字符串都有一個(gè)length屬性,可以獲取到字符串中字符串的個(gè)數(shù) const str = "akdjflksjdflk"; console.log(str.length); /****字符串拼接***/ 1、+號(hào)具有字符串拼接功能,它能將兩個(gè)字符串拼接成一個(gè)字符串。 2、+號(hào)同時(shí)具有算術(shù)加法的功能,它能將兩個(gè)數(shù)字進(jìn)行相加 3、如果+號(hào)兩邊有一個(gè)是字符串,那么就是拼串的功能,如果都是數(shù)字,那么就是算數(shù)的功能。 // 第一種情況 : 字符串 + 字符串 const a = "hello"; const b = "world"; console.log(a + b);//字符串拼接功能 // 第二種情況 : 數(shù)值 + 數(shù)值 const a = 100; const b = 100; console.log(a + b);//加法 // 第三種情況 : 字符串 + 數(shù)值 const a = "abc"; const b = 100; console.log(a + b);//字符串拼接功能布爾類型--boolean
布爾類型:true 和 false //布爾類型只有兩個(gè)值 true:表示真 false:表示假undefined和null
他們都屬于獲取非正常值的類型 undefined表示一個(gè)沒有賦值的變量 null表示一個(gè)空的值, ( 例如 : 獲取一個(gè)元素,id寫錯(cuò)了,獲取不到,返回一個(gè)null)數(shù)據(jù)類型的判斷
1. typeof
typeof返回一個(gè)表示數(shù)據(jù)類型的字符串,返回結(jié)果包括:number、boolean、string、symbol、object、undefined、function等7種數(shù)據(jù)類型,但不能判斷null、array等
2. instanceof
instanceof 是用來(lái)判斷A是否為B的實(shí)例,表達(dá)式為:A instanceof B,如果A是B的實(shí)例,則返回true, 否則返回false。instanceof 運(yùn)算符用來(lái)測(cè)試一個(gè)對(duì)象在其原型鏈中是否存在一個(gè)構(gòu)造函數(shù)的 prototype 屬性,但它不能檢測(cè)null 和 undefined
3. constructor
constructor作用和instanceof非常相似。但constructor檢測(cè) Object與instanceof不一樣,還可以處理基本數(shù)據(jù)類型的檢測(cè)。 不過(guò)函數(shù)的 constructor 是不穩(wěn)定的,這個(gè)主要體現(xiàn)在把類的原型進(jìn)行重寫,在重寫的過(guò)程中很有可能出現(xiàn)把之前的constructor給覆蓋了,這樣檢測(cè)出來(lái)的結(jié)果就是不準(zhǔn)確的。
4. Object.prototype.toString.call()
Object.prototype.toString.call() 是最準(zhǔn)確最常用的方式。
Object.prototype.toString.call("") ; // [object String] Object.prototype.toString.call(1) ; // [object Number] Object.prototype.toString.call(true) ; // [object Boolean] Object.prototype.toString.call(undefined) ; // [object Undefined] Object.prototype.toString.call(null) ; // [object Null] Object.prototype.toString.call(new Function()) ; // [object Function] Object.prototype.toString.call(new Date()) ; // [object Date] Object.prototype.toString.call([]) ; // [object Array] Object.prototype.toString.call(new RegExp()) ; // [object RegExp] Object.prototype.toString.call(new Error()) ; // [object Error]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103518.html
摘要:前綴規(guī)范每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對(duì)象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語(yǔ)言。布爾值與字符串相加將布爾值強(qiáng)制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語(yǔ)言,瀏覽器充當(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ū)ο缶幊蹋駝t只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...
摘要:基于對(duì)象字面量,但是獨(dú)立于任何編程語(yǔ)言,真正重要的是表示法本身,所以在學(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ù)交換格式...
摘要:基于對(duì)象字面量,但是獨(dú)立于任何編程語(yǔ)言,真正重要的是表示法本身,所以在學(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ù)交換格式...
摘要:目錄語(yǔ)句變量小結(jié)基本語(yǔ)法一是核心知識(shí)點(diǎn)的基本語(yǔ)法的第一部分,主要介紹了語(yǔ)句表達(dá)式變量和數(shù)據(jù)類型不包括函數(shù)類型的基本知識(shí)點(diǎn),函數(shù)類型將在下一章函數(shù)二中詳細(xì)探討語(yǔ)句程序的執(zhí)行是由一條條語(yǔ)句組成的每一條語(yǔ)句是為完成特定任務(wù)而執(zhí)行的操作語(yǔ)句當(dāng)中可以 目錄 1. 語(yǔ)句 2. 變量 3. 小結(jié) JavaScript基本語(yǔ)法(一)是JavaScript核心知識(shí)點(diǎn)(ECMAScript)的基本語(yǔ)法的...
摘要:通常一個(gè)完成的不僅僅包含了還包括了以及相關(guān)版本該版本在中使用。基于原型函數(shù)先行的語(yǔ)言使用基于原型的的繼承機(jī)制,函數(shù)是的第一等公民其他相關(guān)的語(yǔ)言特性編譯型語(yǔ)言把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。 轉(zhuǎn)載請(qǐng)注明出處,創(chuàng)作不易,更多文章請(qǐng)戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語(yǔ)言,起初的目...
閱讀 1508·2023-04-26 00:25
閱讀 906·2021-09-27 13:36
閱讀 930·2019-08-30 14:14
閱讀 2172·2019-08-29 17:10
閱讀 1006·2019-08-29 15:09
閱讀 1942·2019-08-28 18:21
閱讀 962·2019-08-26 13:27
閱讀 971·2019-08-26 10:58