国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數據類型

xavier / 3527人閱讀

摘要:,通過原型上的方法,判斷對象所屬類型數據的操作方法基本數據類型的所有方法操作都不改變原始值。對象類型的數據,操作過程中始終留意引用地址的中轉概念,其原型上方法有會改變和不改變原值的兩種類型。

數據類型分類

基礎類型:string,number,boolean,undefined,null,symbol

對象類型:object

基礎類型為原始值,其值不能被修改;對象類型為引用類型,可以理解為指針,通過引用類型找到內存中的地址,然后再進行相關操作。

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

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

// 其他類型轉換成字符串
["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
數據類型判斷

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,屬于基礎類型的 null 經過 typeof 操作符操作后返回的是 object;特例2,函數隸屬于對象,typeof 操作直接返回 function

instanceof,可以判斷通過 new 操作符生成的各種數據類型

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

// number,booelan 同理,(null,undefined,symbol沒有構造函數)
123 instanceof Number; // false
new Number(123) instanceof Number ; // true

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

toString,通過 Object 原型上的 toString 方法,判斷對象所屬類型

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]"
數據的操作方法
基本數據類型的所有方法操作都不改變原始值。

對象類型的數據,操作過程中始終留意引用地址的中轉概念,其原型上方法有會改變和不改變原值的兩種類型。

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

// 對象類型
// 改變值
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 實則對應的是內存中 [8,9] 數組的引用地址,比如 x0001
var arr4 = arr3; // arr4 為 arr3 的值,即為 x0001
arr4[0]= 10; // 在對地址進行操作和讀值時,則又通過引用找到對應的區域進行讀寫操作
arr3; // [10,9]
引用類型可以簡單地類比成計算機中的快捷方式。

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

String

剪切

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

toFixed(length),返回字符串;僅對小數點位后,做特定長度的截取,不夠長度則補0,四舍五入。

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

slice 和 splice

方法名 說明
slice(start,end) start和end都可以為負數,皆代表位置索引,從start元素往數組右邊淺拷貝,不包括end位置元素,end 位置若在 start 左邊,則返回空數組(類似字符串的slice),操作不影響原數組。
splice(start,len,…eles) start代表索引位置,可為負;len表示要刪除的個數,eles 表示要在刪除的位置中插入的元素,可多個。操作會影響到原數組。返回的為刪除的元素數組。
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]

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/104890.html

相關文章

  • 數據類型——數據類型簡介及之間的轉換

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

    codercao 評論0 收藏0
  • JS專題之數據類型類型檢測

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

    since1986 評論0 收藏0
  • 深入Mysql - 談談我對數據類型的認識

    摘要:要確保沒有低估需要存儲的值的范圍,更小是相對與數據類型的最大值范圍來講的。如果無法確定哪個數據類型是最好的,就選擇你認為不會超過范圍的最小類型。整數類型有兩個類型的數字整數和實數。列默認為,這與其他的數據類型不一樣。 簡述 良好的邏輯設計和物理設計是高性能系統的基石,比如反范式設計可以加快某些類型的查詢同時也會影響另外一些類型的查詢效率,所以我們必須重視Mysql對于數據庫的設計(本...

    SillyMonkey 評論0 收藏0

發表評論

0條評論

xavier

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<