成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

數(shù)據(jù)類型

xavier / 3529人閱讀

摘要:,通過(guò)原型上的方法,判斷對(duì)象所屬類型數(shù)據(jù)的操作方法基本數(shù)據(jù)類型的所有方法操作都不改變?cè)贾?。?duì)象類型的數(shù)據(jù),操作過(guò)程中始終留意引用地址的中轉(zhuǎn)概念,其原型上方法有會(huì)改變和不改變?cè)档膬煞N類型。

數(shù)據(jù)類型分類

基礎(chǔ)類型:string,number,boolean,undefined,null,symbol

對(duì)象類型:object

基礎(chǔ)類型為原始值,其值不能被修改;對(duì)象類型為引用類型,可以理解為指針,通過(guò)引用類型找到內(nèi)存中的地址,然后再進(jìn)行相關(guān)操作。

// 基本類型
var a = 10;
var b = a ;
a = 20;
console.log(b); // 10

// 對(duì)象類型
var c = { name:"hello"};
var d = c ;
c.name = "world";
console.log(d.name); // "world"
數(shù)據(jù)的創(chuàng)建 string
var str1 = "hello";
var str2 = new String("hello");
var str3 = `${"hello"}abc`

// 其他類型轉(zhuǎn)換成字符串
["h","e","l","l","o"].join(""); // "hello"
var num = 123;
num += "";
num.toString(); 
String(num); // "123"
String(true); // "true"
number
var num1 = 123;
var num2 = new Number(123);

var num3 = parseInt("12px"); // 12
var num4 = parseFloat("12.22px"); // 12.22
var num5 = Number("123");
boolean
var boo1 = true;
var boo2 = New Boolean(true);

var a = 1;
var boo2 = !!a; // true
undefined
var undef = undefined;
var a; 
a; // undefined
數(shù)據(jù)類型判斷

typeof,獲取值的所屬類型以字符串形式返回

typeof "hello"; // "string"
typeof 123; // "number"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object" (特例1)
typeof Symbol("hello"); // "symbol"

typeof {a:1} ; // "object"
typeof function(){}; // "function" (特例2)
特例1,屬于基礎(chǔ)類型的 null 經(jīng)過(guò) typeof 操作符操作后返回的是 object;特例2,函數(shù)隸屬于對(duì)象,typeof 操作直接返回 function。

instanceof,可以判斷通過(guò) new 操作符生成的各種數(shù)據(jù)類型

var str = "hello";
str instanceof String ; // false
new String("hello") instanceof String; // true

// number,booelan 同理,(null,undefined,symbol沒(méi)有構(gòu)造函數(shù))
123 instanceof Number; // false
new Number(123) instanceof Number ; // true

true instanceof Boolean; // false
new Boolean(true) instanceof Boolean; // true
instanceof 的實(shí)質(zhì)是,判斷 instanceof 左邊對(duì)象的原型是不是在右邊對(duì)象的原型鏈中。

toString,通過(guò) Object 原型上的 toString 方法,判斷對(duì)象所屬類型

Object.prototype.toString.call("hello"); // "[object String]"
Object.prototype.toString.call(123); // "[object Number]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(Symbol("hi")); // "[object Symbol]"

Object.prototype.toString.call(function(){}); // "[object Function]"
Object.prototype.toString.call([]); // "[object Array]"
Object.prototype.toString.call(new Date()); // "[object Date]"
Object.prototype.toString.call(/w+/); // "[object RegExp]"
Object.prototype.toString.call({}); // "[object Object]"
數(shù)據(jù)的操作方法
基本數(shù)據(jù)類型的所有方法操作都不改變?cè)贾怠?p>對(duì)象類型的數(shù)據(jù),操作過(guò)程中始終留意引用地址的中轉(zhuǎn)概念,其原型上方法有會(huì)改變和不改變?cè)档膬煞N類型。

// 基本類型
var str = "hello";
str.toUpperCase(); // 僅返回值為 "HELLO",并不是直接在原值上修改
console.log(str); // "hello"

// 對(duì)象類型
// 改變值
var arr1 = [1,2,3];
arr1.push(4); 
arr1; // [1,2,3,4]

// 不改變值
var arr2 = [5,6,7];
arr2.concat(arr1); // 返回 [5,6,7,1,2,3,4]
arr2; // [5,6,7]

// 引用地址示例
var arr3 = [8,9]; // arr3 實(shí)則對(duì)應(yīng)的是內(nèi)存中 [8,9] 數(shù)組的引用地址,比如 x0001
var arr4 = arr3; // arr4 為 arr3 的值,即為 x0001
arr4[0]= 10; // 在對(duì)地址進(jìn)行操作和讀值時(shí),則又通過(guò)引用找到對(duì)應(yīng)的區(qū)域進(jìn)行讀寫操作
arr3; // [10,9]
引用類型可以簡(jiǎn)單地類比成計(jì)算機(jī)中的快捷方式。

常用又較容易混淆的操作方法:

String

剪切

方法名 說(shuō)明
slice(start,end) start和end都可以為負(fù)數(shù),皆代表位置索引,從start往字符串右邊向剪切,end位置若在start左邊,則返回為空,
substr(start,length) start可為負(fù),表示定位到剪切的起始位置,length需為正數(shù),表示從起始位置往右截取的長(zhǎng)度。
substring(index1,index2) Index1 和 index2 都為正數(shù)皆代表位置索引,兩者無(wú)序即總是取兩者之間的字符
Number

toFixed(length),返回字符串;僅對(duì)小數(shù)點(diǎn)位后,做特定長(zhǎng)度的截取,不夠長(zhǎng)度則補(bǔ)0,四舍五入。

var num = 123.5368;
num.toFixed(2); // "123.54"
num.toFixed(1); // "123.5"
num.toFixed(6); // "123.536800"
Array

slice 和 splice

方法名 說(shuō)明
slice(start,end) start和end都可以為負(fù)數(shù),皆代表位置索引,從start元素往數(shù)組右邊淺拷貝,不包括end位置元素,end 位置若在 start 左邊,則返回空數(shù)組(類似字符串的slice),操作不影響原數(shù)組。
splice(start,len,…eles) start代表索引位置,可為負(fù);len表示要?jiǎng)h除的個(gè)數(shù),eles 表示要在刪除的位置中插入的元素,可多個(gè)。操作會(huì)影響到原數(shù)組。返回的為刪除的元素?cái)?shù)組。
var arr = [1,2,3,4,5,6,7,8];

// slice 
arr.slice(-4,-1); // [5,6,7]

// splice
var data = arr.splice(0,1,99); 
arr; // [99,2,3,4,5,6,7,8]
data; // [1]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104890.html

相關(guān)文章

  • 數(shù)據(jù)類型——數(shù)據(jù)類型簡(jiǎn)介及之間的轉(zhuǎn)換

    摘要:二類型轉(zhuǎn)換隱式類型轉(zhuǎn)換轉(zhuǎn)換為字符串類型任意類型轉(zhuǎn)換為類型任意類型一個(gè)加號(hào)加任意類型轉(zhuǎn)換為類型任意類型顯式類型轉(zhuǎn)換轉(zhuǎn)換為字符串類型轉(zhuǎn)換為類型將字符串或布爾值轉(zhuǎn)換為整數(shù)類型。 內(nèi)容簡(jiǎn)介: 一.數(shù)據(jù)類型簡(jiǎn)介 ———— 原始類型 ———— 引用類型 二.數(shù)據(jù)類型之間的轉(zhuǎn)換 一、數(shù)據(jù)類型簡(jiǎn)介 數(shù)據(jù)類型主要分為原始類型(也有稱為基本類型/原始值)和引用類型。 1.原...

    codercao 評(píng)論0 收藏0
  • JS專題之數(shù)據(jù)類型類型檢測(cè)

    摘要:運(yùn)算符可以用來(lái)檢測(cè)某個(gè)構(gòu)造函數(shù)的屬性是否存在于另外一個(gè)要檢測(cè)對(duì)象的原型鏈上。使用方法可以獲取到變量的準(zhǔn)確的數(shù)據(jù)類型就能解決基本包裝類型的檢測(cè)錯(cuò)誤和的檢測(cè)不安全。 本文共 1750 字,讀完只需 7 分鐘 數(shù)據(jù)類型有哪些? ECMAScript 的數(shù)據(jù)類型分為簡(jiǎn)單數(shù)據(jù)類型(也被稱為基本數(shù)據(jù)類型,原始數(shù)據(jù)類型): Undefined Null String Number Boolean ...

    since1986 評(píng)論0 收藏0
  • 深入Mysql - 談?wù)勎覍?duì)數(shù)據(jù)類型的認(rèn)識(shí)

    摘要:要確保沒(méi)有低估需要存儲(chǔ)的值的范圍,更小是相對(duì)與數(shù)據(jù)類型的最大值范圍來(lái)講的。如果無(wú)法確定哪個(gè)數(shù)據(jù)類型是最好的,就選擇你認(rèn)為不會(huì)超過(guò)范圍的最小類型。整數(shù)類型有兩個(gè)類型的數(shù)字整數(shù)和實(shí)數(shù)。列默認(rèn)為,這與其他的數(shù)據(jù)類型不一樣。 簡(jiǎn)述 良好的邏輯設(shè)計(jì)和物理設(shè)計(jì)是高性能系統(tǒng)的基石,比如反范式設(shè)計(jì)可以加快某些類型的查詢同時(shí)也會(huì)影響另外一些類型的查詢效率,所以我們必須重視Mysql對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì)(本...

    SillyMonkey 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

xavier

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<