日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

理顺 JavaScript (4) - 变量、常量与数据类型

發布時間:2025/4/16 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理顺 JavaScript (4) - 变量、常量与数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??


var v1 = 123; /* 聲明變量、同時初始化為數字 */ var v2 = 'ABC'; /* 聲明變量、同時初始化為字符串 */ var v3,v4; /* 已聲明還沒有初始化的變量, 類型未知(未知也是一種類型: undefined) */x = 1; y = 2; /* 缺失 var(未聲明)的變量也可以使用, 但會讓編譯器在幕后補充聲明; 最好別這樣 */ alert(x + y); /* 3 */
JavaScript 到底有幾種數據類型? 不如從例子中去解析:
var X; /* 先聲明一個變量 X */ alert(typeof X); /* 用 typeof 函數查看其類型是: undefined */X = 123; /* 賦予數字值 */ alert(typeof X); /* 此時的類型是: number */X = 'ABC'; /* 賦予字符串值 */ alert(typeof X); /* 此時的類型是: string */X = true; /* 賦予布爾值(true 或 false) */ alert(typeof X); /* 此時的類型是: boolean */X = function(){}; /* 賦予一個函數 */ alert(typeof X); /* 此時的類型是: function */X = new Array(1,2,3); /* 賦予一個數組 */ alert(typeof X); /* 此時的類型是: object */X = new Date(); /* 賦予一個日期值 */ alert(typeof X); /* 此時的類型是: object */X = new RegExp(); /* 賦予一個正則表達式對象 */ alert(typeof X); /* 此時的類型是: object */X = new String(); /* 賦予一個字符串對象 */ alert(typeof X); /* 此時的類型是: object */X = new Boolean(); /* 賦予一個布爾對象 */ alert(typeof X); /* 此時的類型是: object */X = new Number(); /* 賦予一個數字對象 */ alert(typeof X); /* 此時的類型是: object */X = new Error(); /* 賦予一個 Error 對象 */ alert(typeof X); /* 此時的類型是: object */X = new Object(); /* 賦予一個 Object 對象 */ alert(typeof X); /* 此時的類型是: object */
從例子中總結出 JavaScript 的數據類型:
undefined /* 沒有賦值或不存在的變量的類型 */ number /* 數字類型 */ string /* 字符串類型 */ boolean /* 布爾類型 */ function /* 函數類型 */ object /* 對象類型, 其中數組等都屬于 object 類型 */
可以從實踐中求證一下:
alert(typeof window); /* object */ alert(typeof window.screen); /* object */ alert(typeof window.closed); /* boolean */ alert(typeof window.document); /* object */ alert(typeof window.document.body); /* object */ alert(typeof window.document.body.offsetWidth); /* number */ alert(typeof window.document.body.clientHeight); /* number */ alert(typeof window.document.title); /* string */ alert(typeof window.document.Title); /* undefined *//* 上面最后一個是 undefined, 這表示對象或屬性不存在; 因為 JS 區分大小寫, document 對象不包含 Title 對象或屬性, document 的標題屬性應該是 title */
從前面看到:
既有一個 string 類型, 又有一個 String 對象;
既有一個 number 類型, 又有一個 Number 對象;
既有一個 boolean 類型, 又有一個 Bollean 對象...

這是 JS 為了簡單而帶來的麻煩, 其實不用考慮那么多, 可以把 string 與 String 混起來使用, JS 編譯器會在幕后處理一切; 譬如:
var X = new String('ABC'); /* 此時 X 是 String 對象 */ var Y = new String('123'); /* 此時 Y 是 String 對象 */ var XY = X + Y; /* 此時 XY 是 string 類型 */ alert(XY); /* ABC123 */ alert(XY.length); /* 6 */var X = 'ABC'; /* 此時 X 是 string 類型 */ var Y = '123'; /* 此時 Y 是 string 類型 */ var XY = new String(X + Y); /* 此時 XY 是 String 對象 */ alert(XY); /* ABC123 */ alert(XY.length); /* 6 *//* 上面的字符串長度屬性(length) 本來是屬于 String 對象的, string 類型的字符串照樣使用; 這有可能是編譯器迅速做了個轉換; 在 JS 中任何類型的轉換都是方便自由的. */
說到 JavaScript 類型的簡單化, 它的數值類型只有一個 number(類似與 Delphi 的 Double);
也沒有單個字符類型, 需要時給長度是 1 的字符串就是了.

和 Delphi 的指針類似, 可以給 JS 的變量賦空值: null; 這個 null 和上面的 undefined 不好區別.
null 是已賦值, 但是空值;
undefined 是沒賦值或不存在.
alert(undefined == null); /* true ; 簡單地看, 它們差不多 */ alert(undefined === null); /* false ; 仔細地看, 它們不一樣 *//* null 作為空值(相當與 0)可以參與數值運算 */ var X; X = 123 + null; alert(X); /* 123 */ X = 123 + undefined; alert(X); /* NaN *///JS 的理念應該是這樣的: //未知類型也是類型, 沒有賦值也是值: undefined; //空值也是值: null.
再展示一個遭遇 null 和 undefined 的示例:


還有一個 "常量" 的問題.
JS 本來沒有常量, 所謂的常量不過是提前賦值的變量而已.
Infinity; /* 無窮大 */ NaN; /* 非數字值 */ Number.MAX_VALUE; /* 最大數值(JS 可以表示的) */ Number.MIN_VALUE; /* 最小數值(JS 可以表示的) */ Number.NaN; /* 非數字值 */ Number.NEGATIVE_INFINITY; /* 負無窮大 */ Number.POSITIVE_INFINITY; /* 無窮大 *//* 取值測試: */ alert(Number.MAX_VALUE); /* 1.7976931348623157e+308 */ alert(Number.MIN_VALUE); /* 5e-324 */ alert(Number.NaN); /* NaN */ alert(Number.NEGATIVE_INFINITY); /* -Infinity */ alert(Number.POSITIVE_INFINITY); /* Infinity */ alert(Infinity); /* Infinity */ alert(NaN); /* NaN *//* 常量還有其它, 譬如(IE7): */ alert(window.navigator.appCodeName); /* Mozilla - 瀏覽器代碼*/ alert(window.navigator.appName); /* Microsoft Internet Explorer - 瀏覽器名稱 */ alert(window.navigator.appVersion); /* 4.0 ... - 瀏覽器版本 */
另外, 瀏覽器中 JS 的全局變量都直屬瀏覽器的 window 對象, 盡管常常省略這個前綴:
var X = 111; alert(window.X); /* 111 */window.Y = 222; alert(Y); /* 222 */function MyFun(x, y) {return x + y; } alert(MyFun(1, 2)); /* 3 */ alert(window.MyFun(1, 2)); /* 3 */

轉載于:https://my.oschina.net/hermer/blog/320652

總結

以上是生活随笔為你收集整理的理顺 JavaScript (4) - 变量、常量与数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。