摘要:為的值,有可能不是,而是一個字符除了和這幾個值會返回,對于其他的數值都會返回無法改變字符串之中的單個字符。屬性返回字符串的長度,該屬性也是無法改變的。由于對象本身并沒有屬性,但是運算符會返回,因為這個屬性是繼承的。
null, undefined null 和 undefined
null 是一個表示為“空”的對象,轉為數值時為0;
undefined是一個表示"此處無定義"的原始值,轉為數值時為NaN
返回 undefined 的典型場景
// 變量聲明 var i; i // undefined // 函數沒有返回值 function f() {} f() // undefined // 調用函數時,應該提供的參數沒有提供,該參數等于 undefined function fn(val) { return val; } fn() // undefined // 對象沒有賦值的屬性 var o = new Object(); o.p // undefined與number相關的全局方法
1.parseInt()
parseInt() 方法用于將一個字符串轉為一個整數,默認是十進制整數
parseInt("10.33") // 10 parseInt("10", 8) // 8
2.parseFloat()
parseFloat 方法用于將一個字符串轉為浮點數
parseFloat("3.14") // 3.14 parseFloat("40 years")// 40 parseFloat("y40") // NaNisNaN()
isNaN 只對數值有效,如果傳入其他值,會被先轉成數值。isNan 為true的值,有可能不是NaN,而是一個字符
isNaN("Hello") <=> isNaN(Number("Hello"))isFinite()
除了Infinity、-Infinity、NaN和undefined這幾個值會返回false,isFinite對于其他的數值都會返回truestring
無法改變字符串之中的單個字符。Base64 轉換
length屬性返回字符串的長度,該屬性也是無法改變的。
btoa() -> 任意值轉為 Base64 編碼
atob() -> Base64編碼轉為原來的值
btoa("Hello World") // "SGVsbG8gV29ybGQ=" atob("SGVsbG8gV29ybGQ=") // "Hello World"非 ASCII 碼 Base64 轉換
要將非 ASCII 碼字符轉為 Base64 編碼,必須中間插入一個轉碼環節。
function base64Encode(str) { return btoa(encodeURIComponent(str)); } function base64Decode(str) { return decodeURIComponent(atob(str)); } base64Encode("你好") // "JUU0JUJEJUEwJUU1JUE1JUJE" base64Decode("JUU0JUJEJUEwJUU1JUE1JUJE") // "你好"object 屬性的查看
查看一個對象本身的所有屬性,可以使用Object.keys方法
var obj = { key1: 1, key2: 2 }; Object.keys(obj); // ["key1", key2]屬性的刪除:delete命令
delete命令用于刪除對象的屬性,刪除成功后返回true
var obj = { key: 1 } delete obj.key // true obj.key // undefined
delete 命令只能刪除對象本身的屬性,無法刪除繼承的屬性
var obj = {}; delete obj.toString // true obj.toString // ? toString() { [native code] }
toString是對象obj繼承的屬性,雖然delete命令返回true,但該屬性并沒有被刪除,依然存在。這個例子還說明,即使delete返回true,該屬性依然可能讀取到值。
in 運算符in 運算符用于檢查對象是否包含某個屬性,如果包含返回true
var obj = { key: 1 } "key" in obj // true "toString" in obj // true
in運算符不能識別哪些屬性是對象自身的,哪些屬性是繼承的。由于對象obj本身并沒有toString屬性,但是in運算符會返回true,因為這個屬性是繼承的。這是可以使用對象的hasOwnProperty方法判斷一下,是否為對象自身的屬性。
屬性的遍歷:for...in循環for...in循環用來遍歷一個對象的全部屬性。
var obj = { a: 1, b: 2, c:3 }; for (var i in obj) { console.log("鍵名:", i + "; 鍵值:" + obj[i]); } // 鍵名: a; 鍵值:1 // 鍵名: b; 鍵值:2 // 鍵名: c; 鍵值:3
for...in循環有兩個使用注意點。
它遍歷的是對象所有可遍歷(enumerable)的屬性,會跳過不可遍歷的屬性。
它不僅遍歷對象自身的屬性,還遍歷繼承的屬性。
對象obj繼承了toString屬性,該屬性不會被for...in循環遍歷到,因為它默認是“不可遍歷”的。
如果繼承的屬性是可遍歷的,那么就會被for...in循環遍歷到。但是,一般情況下,都是只想遍歷對象自身的屬性,所以使用for...in的時候,應該結合使用hasOwnProperty方法,在循環內部判斷一下,某個屬性是否為對象自身的屬性。
var obj = { name: "wade" }; for (var key in obj) { if (obj.hasOwnProperty(Key)) { console.log(key); } } // name
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97743.html
摘要:的垃圾回收器,進行回收。它們的數據就存放在堆內存中,大小不一定,動態分配內存,可隨時修改。引用類型的變量存的是其在堆內存中的地址,值的讀取,就是讀取這個內存地址中儲存的內容。 這東西還是很重要的,你要是搞懂了,就會去除很多困惑,比如不知道大家在學習js 的時候,有沒有對 基礎類型 和 引用類型 感到困惑過,兩者之間 表現的不同之處。 js 不同其他編程語言,它是腳本語言。所以,它的數...
文章目錄 強烈推薦系列教程,建議學起來!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內部配置 4.2手動添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動補碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開頭八、這個前言一定要看九、pyt...
摘要:中的數據類型為什么稱為弱類型語言中變量是沒有類型的,只有值才有。有哪些數據類型在中,共有七種數據類型,其中,六種是基本原始類型,一種是對象復合引用類型。因此,我們可以寫一個函數,用來精確檢測類型。 showImg(http://upload-images.jianshu.io/upload_images/7803415-2bbe6fd5fdeebe0d.jpg?imageMogr2/a...
摘要:舉個例子在上面的例子可以看到,我們聲明是一個數字,但是我們在之后將的值又改成了字符串和布爾值后面會講這些類型。基本類型字符串表示一個字符串,如。因此,我們可以寫一個函數,用來精確檢測類型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定義 1. 什么是數據類型? 數據類型,就是將...
閱讀 2843·2023-04-26 01:02
閱讀 1864·2021-11-17 09:38
閱讀 791·2021-09-22 15:54
閱讀 2900·2021-09-22 15:29
閱讀 889·2021-09-22 10:02
閱讀 3432·2019-08-30 15:54
閱讀 2008·2019-08-30 15:44
閱讀 1586·2019-08-26 13:46