21. JS--- JS的變量類型

1. JS的字面量與變量
  • 字面量:
    都是一些不可改變的值汉柒,如1,2,3,4,5
    字面量都是可以直接使用误褪,但我們一般都不會直接使用字面量

  • 變量:
    變量可以用來保存字面量,而且變量的值是可以任意改變的
    變量更加方便我們使用碾褂,所以在開發(fā)中都是通過變量去保存一個字面量
    而很少使用字面量

  • 聲明變量:
    JS中使用關(guān)鍵字var來聲明一個變量

 <script type="text/javascript">
    var age = 100;
    alert(age);
 </script>
6. 標(biāo)識符
標(biāo)識符命名的規(guī)則:
  • 標(biāo)識符中可以含有字母钦铺,數(shù)字旗唁,_弟胀,$域慷。
  • 標(biāo)識符不能以數(shù)字開頭
  • 標(biāo)識符不能是JS中的關(guān)鍵字和保留字
  • 標(biāo)識符一般都采用駝峰命名法
JS底層保存標(biāo)識符時實際上是采用的Unicode編碼颂碘,所以理論上講柏腻,所有的UTF-8中含有的內(nèi)容都可以作為標(biāo)識符诺擅。
7. 字面量

JS中一共與6種數(shù)據(jù)類型

  • Boolean 布爾值
  • Number 數(shù)值
  • String 字符串
  • Null 空值
  • Undefined 未定義
  • Object 對象

其中Boolean晨横,Number咒程,String鸠天,NullUndefined屬于基本數(shù)據(jù)類型帐姻,而Object屬于引用數(shù)據(jù)類型

09.Boolean類型
<body>
    
    Boolean 布爾值
    布爾值只有兩個稠集,主要用來做邏輯判斷
    true:真
    false: 假
     
    <script type="text/javascript">
        var bool = true;
        console.log(bool);
        console.log(typeof bool);
    </script>

</body>

output:
true
boolean
8. Number

JS中所有的數(shù)值都是Number類型,包括整數(shù)浮點數(shù)

可以使用一個運算符typeof來檢查一個變量的類型

  • typeof 變量
  • 檢查字符串時饥瓷,會返回string
  • 檢查數(shù)值時剥纷,會返回number

如果使用Number表示的數(shù)字超過了最大值,則會返回一個Infinity呢铆,表示正無窮

  • Infinity 正無窮大
  • -Infinity 負(fù)無窮大
  • 使用typeof檢查Infinity也會返回Number

NaN 是一個特殊的數(shù)字晦鞋,表示Not A Number使用typeof檢查一個NaN也會返回number

JS中整數(shù)的運算基本可以保證精確
如果使用JS進(jìn)行浮點運算,可能得到一個不精確的結(jié)果棺克,所以千萬不要使用JS進(jìn)行精確度要求比較高的運算

<script type="text/javascript">
        var a = 123;
        var b = "123";
        console.log(typeof a);
        console.log(typeof b);
        
        console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
        console.log(Number.MAX_VALUE * Number.MAX_VALUE);

        var c = Infinity;
        console.log(typeof c);

        c = "abc" * "bcd";
        console.log(typeof c); // NaN

        c = Number.MIN_VALUE;
        console.log(c); // 5e-324

        c = 0.1 + 0.2;
        console.log(c); // 0.30000000000000004
    </script>
String字符串
  • JS中字符串需要使用引號引起來
  • 使用雙引號單引號都可以悠垛,但是不要混著用
  • 引號不能嵌套,雙引號里面不能放雙引號娜谊,單引號里面不能放單引號
<script type="text/javascript">
    var a = '我說:"你好漂亮啊!",你說呢确买?,\\,\n';
    alert(a);
</script>
10. Null和Undefined類型
<body>
    
 
        Null:(空值) 
        這個類型的值只有一個因俐,就是null
        null這個值專門用來表示一個為空的對象
        使用typeof檢查一個null值時拇惋,會返回一個object
     
    <script type="text/javascript">
        var a = null;
        console.log(a);
        console.log(typeof a);
    </script>

    output:
    null
    object
    
   
        Undefined:(未定義)
        類型的值只有一個,就是undefined
        當(dāng)聲明一個變量抹剩,但是并不給變量賦值時撑帖,
        它的值就是undefined
        使用typeof檢查一個undefined時也會返回undefined
     
    <script type="text/javascript">
        var b;
        console.log(b);
    </script>
    output:
    undefined

</body>
11. 強(qiáng)制類型轉(zhuǎn)換

 強(qiáng)制類型轉(zhuǎn)換
 1.將一個數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為其他的數(shù)據(jù)類型
 2.類型轉(zhuǎn)換主要指,將其他的數(shù)據(jù)類型澳眷,轉(zhuǎn)換為String胡嘿,Number,Boolean



  將其他數(shù)據(jù)類型轉(zhuǎn)換為String
  方法一:
     調(diào)用被轉(zhuǎn)換數(shù)據(jù)類型的toString方法
     該方法不會影響到原變量钳踊,它會將轉(zhuǎn)換的結(jié)果返回
     但是注意:null和undefined這兩個值沒有toString方法衷敌,

<script type="text/javascript">

 var a = 123;
 var b = a.toString();

 console.log(typeof a);
 console.log(a);

 console.log(typeof b);
 console.log(b);
</script>

<!-- 
   方法二:
     調(diào)用String()函數(shù)勿侯,并將被轉(zhuǎn)換的數(shù)據(jù)作為參數(shù)傳遞給函數(shù)
     使用String()函數(shù)做強(qiáng)制類型轉(zhuǎn)換時,
     對于Number和Boolean實際上就是調(diào)用的toString()方法
     但是對于null和undefined缴罗,就不會調(diào)用toString()方法
     會將null直接轉(zhuǎn)換為"null"
     會將undefined直接轉(zhuǎn)換為"undefined"
-->
<script type="text/javascript">
  var a = 123;
  var b = String(a);

  console.log(typeof a);
  console.log(a);

  console.log(typeof b);
  console.log(b);
</script>
12. 轉(zhuǎn)換為Number
 
     將其他的數(shù)據(jù)類型轉(zhuǎn)換為Number助琐,
     轉(zhuǎn)換方式一:
         使用Number()函數(shù),
         字符串 --- 數(shù)字
         1.如果是純數(shù)字的字符串面氓,則直接將其轉(zhuǎn)換為數(shù)字
         2.如果字符串中有非數(shù)字內(nèi)容兵钮,轉(zhuǎn)換為NaN
         3.如果字符串是一個空串或者多個空格,則轉(zhuǎn)換為0
         4.true轉(zhuǎn)換為1舌界,false轉(zhuǎn)換為0
         5.null轉(zhuǎn)換為0
         6.undefined轉(zhuǎn)換為NaN
  
 <script type="text/javascript">
     var a = " ";
     a = Number(a);

     a = false;
     a = Number(a);
     
     a = null;
     a = Number(a);

     a = undefined;
     a = Number(a);

     console.log(typeof a);
     console.log(a);
 </script>

 <!-- 
     調(diào)用parseInt()函數(shù)將b轉(zhuǎn)換為Number
     parseInt()可以將一個字符串中的有效的整數(shù)內(nèi)容取出來掘譬,轉(zhuǎn)換為Number
     parseFloat()它可以獲取有效的小數(shù)位
     如果對非String類型的內(nèi)容使用parseInt(),parseFloat()它會先將其轉(zhuǎn)換為
     String呻拌,然后再操作葱轩。
  -->
 <script type="text/javascript">
     var b = "123px";
     b = parseInt(b); // 123

     b = "123.456px";
     b = parseFloat(b); // 123.456

     console.log(typeof b);
     console.log(b); 
 </script>
13.其他進(jìn)制的數(shù)
    
        在JS中,如果需要表示16進(jìn)制的數(shù)藐握,則需要以0x開頭
        如果需要表示8進(jìn)制的數(shù)靴拱,則需要以0開頭
        如果需要表示2進(jìn)制的數(shù),則需要以0b開頭
     
    <script type="text/javascript">

        var a = 0x123; // 291 16進(jìn)制
        a = 070; // 56 8進(jìn)制
        a = 0b10; // 2進(jìn)制 2

        // 像"070"這種字符串趾娃,有些瀏覽器會當(dāng)成8進(jìn)制解析缭嫡,有些會當(dāng)成10進(jìn)制解析
        
        a = "070";
        a = parseInt(a,10); // 第二個參數(shù),指定數(shù)字的進(jìn)制

        console.log(typeof a); 
        console.log(a);
    </script>
14. 轉(zhuǎn)換為Boolean
    <!-- 
        將其他的數(shù)據(jù)類型轉(zhuǎn)換為Boolean抬闷,使用Boolean()函數(shù)
        1.數(shù)字---》Boolean:除了0和NaN妇蛀,其余的都是true
        2.字符串---》Boolean:除了空串,其余的都是true
        3.null和undefined都會轉(zhuǎn)為false
        4.對象也會轉(zhuǎn)為true
     -->
     <script type="text/javascript">
        var a = 123;

        a = undefined;

        a = Boolean(a);

        console.log(typeof a);
        console.log(a);
     </script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笤成,一起剝皮案震驚了整個濱河市评架,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炕泳,老刑警劉巖纵诞,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異培遵,居然都是意外死亡浙芙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門籽腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗡呼,“玉大人,你說我怎么就攤上這事皇耗∧洗埃” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長万伤。 經(jīng)常有香客問我窒悔,道長,這世上最難降的妖魔是什么敌买? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任简珠,我火速辦了婚禮,結(jié)果婚禮上虹钮,老公的妹妹穿的比我還像新娘北救。我一直安慰自己,他們只是感情好芜抒,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著托启,像睡著了一般宅倒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屯耸,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天拐迁,我揣著相機(jī)與錄音,去河邊找鬼疗绣。 笑死线召,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的多矮。 我是一名探鬼主播缓淹,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼塔逃!你這毒婦竟也來了讯壶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤湾盗,失蹤者是張志新(化名)和其女友劉穎伏蚊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體格粪,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡躏吊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了帐萎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片比伏。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吓肋,靈堂內(nèi)的尸體忽然破棺而出凳怨,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布肤舞,位于F島的核電站紫新,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏李剖。R本人自食惡果不足惜芒率,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篙顺。 院中可真熱鬧偶芍,春花似錦、人聲如沸德玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宰僧。三九已至材彪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間琴儿,已是汗流浹背段化。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留造成,地道東北人显熏。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像晒屎,于是被迫代替她去往敵國和親喘蟆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容