⑴ js-判斷js數據類型的幾種方式
js的數據類型分為兩大類:
基本類型:也稱為簡單類型,由於其占據空間固定,是簡單的數據段,為了便於提升變數查詢速度, 將其存儲在棧中,即按值訪問 。
引用類型:也稱為復雜類型,由於其值的大小會改變,所以不能將其存放在棧中,否則會降低變數查詢速度,因此, 其值存儲在堆中 ,而存儲在變數處的值,是一個指針,指向存儲對象的內存處,即 按址訪問 。引用類型除 Object 外,還包括 Function 、Array、RegExp、Date 等等。
引用類型和基本類型的區別:
1、基本類型按 值 訪問
需要注意的是:
A instanceof B用來判斷A是否屬於B的實例,返回true或者false。
需要注意的是:
ES5中可以用Array.isArray([])來准確判斷數組的實例
當創建變數b時,js會在b的原型上添加constructor屬性,指向b的引用
js在創建內置對象時,也是這么做的:
Object對象有tostring方法返回:
而非object對象,則需要call/apply才能正確返回類型,返回格式為字元串類型的 "[object 數據類型xxx]" :
以上幾種方式可以在不同場景使用。
⑵ js字元串常用判斷方法
1.function obj$(id) 根據id得到對象
2.function val$(id) 根據id得到對象的值
3.function trim(str) 刪除左邊和右邊空格
4.function ltrim(str) 刪除左邊空格
5.function rtrim (str) 刪除右邊空格
6.function isEmpty(str) 字串是否有值
7.function equals(str1, str2) js判斷比較兩字元串是否相等
8.function equalsIgnoreCase(str1, str2) js判斷忽略大小寫比較兩個字元串是否相等
9.function isChinese(str) js判斷判斷是否中文
10.function isEmail(strEmail) js判斷是否電子郵件
11.function isImg(str) js判斷是否是一個圖片格式的文件jpg|jpeg|swf|gif
12.function isInteger(str) js判斷是否是一個整數
13.function isFloat js判斷是否是一個浮點數
14.function isPost(str) js判斷是否郵編(1位至6位
15.function isMobile(str) js判斷是否是手機號
16.function isPhone(str) js判斷是否是電話號碼必須包含區號,可以含有分機號
17.function isQQ(str) js判斷是否合法的QQ號碼
18.function isIP(str) js判斷是否是合法的IP
19.function isDate(str) js判斷是否日期類型(例:2005-12-12)
20.function isIdCardNo(idNumber) js判斷是否是合法的身份證號
⑶ js如何判斷類型
typeof 是一個操作符,其右側跟一個一元表達式,並返回這個表達式的數據類型。返回的結果用該類型的字元串(全小寫字母)形式表示,包括以下 7 種:number、boolean、symbol、string、object、undefined、function 等。
有些時候,typeof 操作符會返回一些令人迷惑但技術上卻正確的值:
對於基本類型,除 null 以外,均可以返回正確的結果。
對於引用類型,除 function 以外,一律返回 object 類型。
對於 null ,返回 object 類型。
對於 function 返回 function 類型。
其中,null 有屬於自己的數據類型 Null , 引用類型中的 數組、日期、正則 也都有屬於自己的具體類型,而 typeof 對於這些類型的處理,只返回了處於其原型鏈最頂端的 Object 類型,沒有錯,但不是我們想要的結果。
⑷ js如何判斷一個數字是正數還是負數
需要准備的材料分別是:電腦、html編輯器、瀏覽器。
1、首先,打開html編輯器,新版建html文件,例如:index.html。
⑸ JS 中如何判斷數組
JS 中有四種方式判斷數據類型,它們分別是: typeof 、 instanceof 、 constructor 、 Object.prototype.toString 。
在 ES5 中,新增了幾種方式可以用來進行數組的判斷,它們是 Object.prototype.isPrototypeOf 、 Array.isArray 和 Object.getPrototypeOf 。
很遺憾,對於任何引用類型的數據(包括 null ), typeof 統一返回 Object 字元串,所以不能用它來判斷 JS 中的數組。
於是可以通過 instanceof 檢測數據的原型鏈中是否存在 Array 構造函數來判斷數據是否是數組。
對象實例有一個 constructor 屬性, constructor 指向對象實例的構造函數。於是,我們可以通過判斷數據的 constructor 是否為 Array 構造函數即可。
要注意: constructor 是可以被修改的,所以這種判斷方式不可靠。
toString 可以用於檢測對象的類型,它返回一個字元串。為了每個對象都能通過 Object.prototype.toString 來判斷,需要藉助函數的 call 或者 apply 方法。
這個方法沒什麼好說的,直接調用即可,會返回一個布爾值。
根據 ES5 新增的這個方法,我們可以把數組的原型對象與需要判斷對象的原型進行比較,如果兩者是全等關系,那麼可以認為它是數組。
借用 ES5 新增的 isPrototypeOf 方法,可以直接了當的通過 Array 調用來判斷目標數據是否是數組類型。
ES5 新增的兩種方法都與原型鏈有關,理解並掌握原型相關內容還是判斷數組的關鍵。方便理解與記憶的話,可以把 isArray 和 isPrototypeOf 放在一起,他們返回的都是布爾值,並且用途也相似。
getPrototypeOf 方法則是用來找到被檢測數據的原型,拿到原型後還要與 Array.prototype 進行比較。
⑹ js判斷對象的幾種方法
1、for in 循環
eg:var obj = {}
var b = function () {
for (var key in obj) {
return false;
}
return true;
}
console.log(b()); // true
2、對象序列化(將對象轉換為字元串)後進行判斷
eg:var data = {};
var b = (JSON.stringify(data) == "{}");
console.log(b); // true
3、jquery的isEmptyObject()方法
eg: var data = {};
var b = $.isEmptyObject(data);
console.log(b); // true
4、Object.getOwnPropertyNames()方法
eg: var data = {};
var arr = Object.getOwnPropertyNames(data);
console.log(arr.length == 0); // true
5、ES6中的Object.keys()方法
eg: var data = {};
var arr = Object.keys(data);
console.log(arr.length == 0); // true
⑺ JS中如何判斷一元素是否獲得焦點
需要准備的材料分別是:電腦、html編輯器、瀏覽器。
1、首先,打開html編輯器,新建html文件版,例如:權index.html。
⑻ js中如何判斷一個值是不是數字
1、js判斷變數是否為數字的辦法,主要是js裡面的isNaN函數的用法,示例代碼:
1. document.write(isNaN(123));//false
2. document.write(isNaN(-1.23));//false
3. document.write(isNaN(5-2));//false
4. document.write(isNaN(0));//false
5. document.write(isNaN("Hello"));//true
6. document.write(isNaN("2005/12/12"));//true
7. document.write(isNaN("6/2"));//true
8. document.write(isNaN("3"));//false
2、定義和用法:isNaN() 函數用於檢查其參數是否是非數字值。
3、語法:isNaN(x) x 必需。要檢測的值。
4、返回值:如果 x 是特殊的非數字值 NaN(或者能被轉換為這樣的值),返回的值就是 true。如果 x 是其他值,則返回 false。
5、說明:isNaN() 函數可用於判斷其參數是否是 NaN,該值表示一個非法的數字(比如被 0 除後得到的結果)。
6、如果把 NaN 與任何值(包括其自身)相比得到的結果均是 false,所以要判斷某個值是否是 NaN,不能使用 == 或 === 運算符。正因為如此,isNaN() 函數是必需的。