摘要:實際上,每當(dāng)讀取一個基本類型值時,后臺就會創(chuàng)建一個對應(yīng)的基本包裝類型的對象。參數(shù)表示數(shù)值的所有數(shù)字的位數(shù)不包括指數(shù)部分。原因與顯示創(chuàng)建對象一樣類型重寫了,都返回對象表示的基本字符串值。轉(zhuǎn)換為針對地區(qū)的小寫方式。
讀《javasrcipt 高級程序設(shè)計》筆記。
ECMAScript提供了3種特殊的引用類型:Boolean,Number,String。實際上,每當(dāng)讀取一個基本類型值時,后臺就會創(chuàng)建一個對應(yīng)的基本包裝類型的對象。
重寫了valueOf()方法,返回基本類型值true或false;
重寫了toString()方法,返回字符串"true"或"false"
【布爾表達式中的所有對象都會被轉(zhuǎn)換為true】
請看栗子
var falseObject = new Boolean(false); var result = falseObject && true;//true var falseValue = false; result = falseValue && true;//false console.log(typeof falseObject); //object console.log(typeof falseValue); //boolean console.log(falseObject instanceof Boolean);//true console.log(falseValue instanceOf Boolean);//false
falseObject雖然值為false,但這是一個對象,所以被轉(zhuǎn)換為true。所以第一個result 為true。
基本類型與引用類型的布爾值的區(qū)別:
typeof對于基本類型返回boolean,對于引用類型返回Object
instanceOf測試Boolean對象返回true,測試基本類型返回false
【作者建議永遠不要用Boolean對象,容易造成誤解】
重寫了valueOf()方法,返回對象表示的基本類型的數(shù)值
重寫了toLocaleString(),toString()方法。返回字符串形式的數(shù)值。
toString()方法,可以傳遞一個表示基數(shù)的參數(shù),則返回的值為該進制數(shù)值的字符串形式
var num = 10;
num.toString(); //"10"
num.toString(2); //"1010"二進制表示
num.toString(10); // "10" 十進制表示
toFixed()方法,按照指定的小數(shù)位返回數(shù)值的字符串表示,能夠自動舍入
var num = 10;
num.toFixed(2); // "10.00"
var num1 = 10.005;
num1.toFixed(2); // "10.01"
toExponential() 返回以指數(shù)表示的數(shù)值的字符串形式,參數(shù)為結(jié)果中的小數(shù)位數(shù)
var num = 10;
num.toExponential(1); // "1.0e+1"
toPrecision() 可能返回固定大小格式,可能返回指數(shù)格式。參數(shù)表示數(shù)值的所有數(shù)字的位數(shù)【不包括指數(shù)部分】。會自動舍入選擇最準(zhǔn)確的形式??梢员憩F(xiàn)1到21位小數(shù)。
var num = 99;
num.toPrecision(1); // "1e+2"
num.toPrecision(2); // "99"
num.toPrecision(3); // "99.0"
【仍不建議直接實例化Number對象。原因與顯示創(chuàng)建Boolean對象一樣】
重寫了valueOf()、toLocaleString()、toString(),都返回對象表示的基本字符串值。
length屬性 表示字符串中包含的字符
charAt() 以單字符字符串形式返回給定位置的字符。
charCodeAt() 以單字符字符串形式返回給定位置的字符編碼。
var stringValue = "hello world";
stringValue.charAt(1); //"e"
stringValue.charCodeAt(1); // "101"
//IE8及其他主流瀏覽器支持方括號方式訪問。
stringValue[1];// "e"
concat() 將一個或多個字符串拼接起來。
var stringValue = "hello ";
var result = stringValue.concat("world");//"hello world"
console.log(stringValue);//"hello "
//可接受任意多個參數(shù)【更普遍做法是:使用+加號操作符】
var result1 = stringValue.concat("world","!");//"hello world!"
slice() slice(start,end),截取start到end的字符串,不包括end。
substr() substr(start,n),截取從start開始的n個字符
substring() substring(start,end),截取從start到end的字符串,不包括end。
//都返回一個基本類型的字符串值,對原始字符串沒有任何影響
//若沒有制定第二個參數(shù),默認將字符串長度作為結(jié)束位置
var stringValue = "hello world";
stringValue.slice(3); //"lo world"
stringValue.substring(3); //"lo world"
stringValue.substr(3); //"lo world"
stringValue.slice(3,7); //"lo w"
stringValue.substring(3,7); //"lo w"
stringValue.substr(3,7); //"lo worl"
//負數(shù)情況
//slice會將傳入的負值與字符串長度相加
//substring會將所有負數(shù)轉(zhuǎn)換為0
//substr會將負數(shù)的第一個參數(shù)加上字符串長度,負的第二個參數(shù)轉(zhuǎn)換為0
stringValue.slice(-3);//"rld"
stringValue.substring(-3);//"hello world"
stringValue.substr(-3);//"rld"
stringValue.slice(3,-4);//"lo w"
stringValue.substring(3,-4);//"hel"
stringValue.substr(3,-4);//""空字符串
indexOf() 從字符串開頭向后搜索,返回子字符串的位置。沒有則返回-1
lastIndexOf() 從字符串末尾向后搜索,返回子字符串的位置。沒有則返回-1
//indexOf和lastIndexOf都接受第二個參數(shù),表示從字符串中的哪個位置開始搜索
//indexOf則是從參數(shù)指定位置向后搜索
//lastIndexOf則是從參數(shù)指定位置向前搜索
var stringValue = "hello world";
stringValue.indexOf("o"); // 4
stringValue.indexOf("o",6);// 7
trim() 創(chuàng)建字符串的副本,刪除前置及后綴的所有空格
toLowerCase() 轉(zhuǎn)換為小寫
toLocaleLowerCase() 。轉(zhuǎn)換為針對地區(qū)的小寫方式
toUpperCase() 。轉(zhuǎn)換為大寫
toLocaleUpperCase() 。轉(zhuǎn)換為針對地區(qū)的大寫方式
match() 本質(zhì)上與調(diào)用RegExp的exec()方法相同,只接受一個參數(shù),要么是正則表達式,要么是RegExp對象。
var text = "cat, bat, sat, fat";
var pattern = /.at/;
var matches = text.match(pattern);
console.log(matches.index); // 0
console.log(matches[0]); // "cat"
console.log(pattern.lastIndex);//0
console.log(matches); // ["cat", index: 0, input: "cat, bat, sat, fat"]
search() 參數(shù)要么是正則表達式,要么是RegExp對象。返回字符串中第一個匹配項的索引。沒有找到返回-1.【從字符串開頭向后查找】
var text = "cat, bat, sat, fat";
var pos = text.search(/at); //1
replace() 。替換子字符串。接受兩個參數(shù),第一個可以是RegExp對象或一個字符串,第二個字符串可以是一個字符串或一個函數(shù)。
var text = "cat, bat, sat, fat";
var result = text.replace("at","ond");//"cond, bat, sat, fat"
//若需要替換所有字符串,則需要提供一個正則表達式,并制定全局標(biāo)志g
result = text.replace(/at/g,"ond");//"cond,bond,sond,fond"
//只有在一個匹配項的情況下,會向這個函數(shù)傳遞3個參數(shù):模式匹配項、模式匹配項在字符串中的位置和原始字符串。
function htmlEscape(text){
return text.replace(/[<>"&]/g, function(match, pos, originalText){ switch(match){ case "<": return "<"; case ">": return ">"; case "&": return "&"; case """: return """; } });
}
htmlEscape("
Hello
");Hello
"split() ?;谥贫ǚ指舴麑⒁粋€字符串分割成多個字符串
//接受可選的第二個參數(shù),用于指定數(shù)組大小
var colorText = "red,blue,green,yellow";
var color1 = colorText.split(",");//["red", "blue", "green", "yellow"]
var color2 = colorText.split(",",2);//["red", "blue"]
var color3 = colorText.split(/1+/);//["", ",", ",", ",", ""]
//正則表達式感覺一臉懵逼,看來明天要研究一下了。
localCompare() 比較兩個字符串。
字符串在字母表中排在參數(shù)之前,返回負數(shù)【一般是-1】
字符串相等,返回0
在參數(shù)之后,返回正數(shù)【一般是1】
var stringValue = "yellow";
stringValue.localeCompare("brisk"); //1
stringValue.localeCompare("yellow"); //0
stringValue.localeCompare("zoo"); //-1
, ?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79459.html
摘要:前綴規(guī)范每個局部變量都需要有一個類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語言。布爾值與字符串相加將布爾值強制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當(dāng)解釋器。js執(zhí)行時,在同一個作用域內(nèi)是先解釋再執(zhí)行。解釋的時候會編譯function和var這兩個關(guān)鍵詞定義的變量,編譯完成后從...
摘要:三包裝對象的概念在中,一切皆對象,包括三種原始類型的值數(shù)值字符串布爾值,在一定條件下,也會自動轉(zhuǎn)為對象,也就是原始類型的包裝對象。每當(dāng)讀取數(shù)字字符串和布爾值的屬性或方法時,創(chuàng)建的臨時對象稱做包裝對象。 一、ECMAScript數(shù)據(jù)類型 (1)最新的 ECMAScript 標(biāo)準(zhǔn)定義了 7 種 數(shù)據(jù)類型: 6種 原型類型: Boolean. 布爾值,true 和 false. null...
摘要:八進制字面值的第一位必須是,然后是八進制數(shù)字序列。十六進制字面量的前兩位必須是,后跟任何十六進制數(shù)字以及。而自動創(chuàng)建的基本包裝類型的對象,則只存在于一行代碼的執(zhí)行瞬間,然后立即銷毀。 前言 ECMAScript 迄今為止標(biāo)準(zhǔn)定義了 7 種數(shù)據(jù)類型:6 種原始類型-- String、Number、 Boolean、 Undefined、Null 和 Symbol;1 種引用類型-- O...
摘要:當(dāng)多個事件觸發(fā)的時候,會把異步事件依次的放入里等同步事件執(zhí)行完之后,再去隊列里一個個執(zhí)行拾遺常用方法總結(jié)面試的信心來源于過硬的基礎(chǔ)參考高級程序設(shè)計你所不知道的深入淺出知識點思維導(dǎo)圖經(jīng)典實例總結(jié)那些剪不斷理還亂的關(guān)系 持續(xù)不斷更新。。。 基本類型和引用類型 vue props | Primitive vs Reference Types 基本類型和字面值之間的區(qū)別 基本類型和字面值相等,...
摘要:如圖反而,由于這些的都是繼承自,所以原型鏈拐向了。因此這樣一個實例,他順著原型鏈?zhǔn)钦业搅巳鐖D選學(xué)內(nèi)容如果我們刨根問底,去尋找和的根源的話,那這個問題又稍微有點復(fù)雜了。 基本類型 Number, Boolean, String, null, undefined 什么樣的變量是 undefined 聲明了變量卻沒賦值 未聲明的變量 包裝類型 其實js里面也有像java,c#里所謂的包裝...
閱讀 835·2023-04-25 22:13
閱讀 2347·2019-08-30 15:56
閱讀 2229·2019-08-30 11:21
閱讀 658·2019-08-30 11:13
閱讀 2024·2019-08-26 14:06
閱讀 1962·2019-08-26 12:11
閱讀 2293·2019-08-23 16:55
閱讀 542·2019-08-23 15:30