JS第一天

  • ECMAScript js的標(biāo)準(zhǔn)語法
  • DOM(html每一個標(biāo)簽對應(yīng)一個對象)
  • html(控制內(nèi)容)+css(控制樣式)+js(控制行為)

html+js

  • 嵌入式

      <head>
        <script>
          //js代碼
        </script>
      </head>
    
  • 導(dǎo)入(保證了html和js代碼解耦)

       <head>
        <script src=""></script>
      </head>
    

注釋

兩種

  • //

  • /*

    */

標(biāo)識符

由字母,數(shù)字,下劃線,$,不能以數(shù)字開頭,不能為關(guān)鍵字

數(shù)據(jù)類型(數(shù)據(jù)最小的單位)

弱類型語言

  • 基本數(shù)據(jù)類型
  • undefined;
    var a;//a的數(shù)據(jù)類型undefined
  • null;
    var b=null;//b的數(shù)據(jù)類型null
    var result=typeof b; //object
  • number;
    var a=10;
  • boolean;
    var a=true;
  • string;
    "" , '';

檢測變量所屬的數(shù)據(jù)類型
var sesult =typeof 變量名

提問框
var result = prompt("提問內(nèi)容");
alert("提示信息");
console.log();

基本數(shù)據(jù)類型之間的轉(zhuǎn)換

Undefiend

一般不考慮其他基本數(shù)據(jù)類型轉(zhuǎn)換為undefined

Null類型

一般不考慮其他基本數(shù)據(jù)類型轉(zhuǎn)換為null

Boolean類型

其他類型轉(zhuǎn)換為Boolean:
雖然boolean類型的取值只有兩個,但是ECMAScript中所有的類型的值都有
與這兩個Boolean值等價(jià)的值

Boolean        true          false
String        非空字符串       ""
Number        任何非0非NaN      0和NaN
Undefined                 undefined    
Null                         null

例如:

   Boolean("");        //false
   Boolean(0);        //false
   Boolean(NaN);    //false
   Boolean(null)    //false
   Boolean(undefined)    //false
   Boolean("briup");    //true
   Boolean(1);        //true

Number

isNaN(para) 當(dāng)參數(shù)para不是數(shù)值的時(shí)候返回true

數(shù)值轉(zhuǎn)換

Number()
如果轉(zhuǎn)換的值是null,undefined,number,boolean
    Number(true);    //1
    Number(false);    //0
    Number(10);    //10 如果是數(shù)字值,原樣輸出
    Number(null);        //0
    Number(undefined);    //NaN
如果是字符串:
    Number("123");  //如果僅包含數(shù)值,轉(zhuǎn)換為對應(yīng)的數(shù)值
    Number("234.1");//解析為對應(yīng)的小數(shù)
    Number("+12.1");//首位為符號位,其余為為數(shù)值,轉(zhuǎn)換為對應(yīng)的數(shù)值
    NUmber("1+2.3");//NaN 符號位出現(xiàn)在其他位置,解析為NaN
    Number("0xa");  //如果僅包含十六進(jìn)制格式,轉(zhuǎn)為為對應(yīng)的十進(jìn)制的值
    Number("010");    //注意!不會當(dāng)做八進(jìn)制被解析,結(jié)果為10
    Number("");    //空字符串被轉(zhuǎn)換為0
    Number("123ac");//包含其他字符: NaN
    Number(" 12");    //12
parseInt()
  • 如果轉(zhuǎn)換的值是null,undefined,number,boolean

      parseInt(true);        //NaN
      parseInt(false);    //NaN
      parseInt(null);        //NaN
      parseInt(undefined);    //NaN
      parseInt(10);        //10 如果是整數(shù)值,原樣輸出
      parseInt(10.3);        //10 如果是小數(shù),舍去小數(shù)點(diǎn)一級后面的內(nèi)容
    
  • 如果是字符串:

      parseInt("123");  //123;如果僅包含數(shù)值,轉(zhuǎn)換為對應(yīng)的數(shù)值
      parseInt("234.1");//234;小數(shù)點(diǎn)后面的數(shù)值省略
      parseInt("+12.1");//12; 首位為符號位,其余為為數(shù)值,轉(zhuǎn)換為整數(shù),結(jié)果為
      parseInt("0xa");  //10; 如果僅包含十六進(jìn)制格式,轉(zhuǎn)為為對應(yīng)的十進(jìn)制的值
      parseInt("010");  //10; 注意!不會當(dāng)做八進(jìn)制被解析,結(jié)果為10
      parseInt("");      //NaN;空字符串被轉(zhuǎn)換為NaN
      parseInt("1+2.3");//1;    如果首位為數(shù)值,依次向后解析,找到連續(xù)的數(shù)值,直到
                  遇到第一個非數(shù)值的,將之前獲取的數(shù)值轉(zhuǎn)換為Number返回
      parseInt("123ac");//123;   
    
parseFloat()
    與parseInt()類似,
    但是會將小數(shù)轉(zhuǎn)換為對應(yīng)的小數(shù) 

String

toString() 轉(zhuǎn)化為字符串

包裝器類 number -> Number
       var num = 10;
       num.toString();  "10"
       num.toString(2); "1010"
       num.toString(8); "12"
       num.toString(16);"a"

注意:
       null ,undefined 沒有toString() 方法
       null.toString()        //報(bào)錯 TypeError: null has no properties
   undefined.toString();    //報(bào)錯 TypeError: undefined has no properties

String() 用來將任意數(shù)據(jù)類型轉(zhuǎn)換為字符串

       String(null)        "null" 
       String(undefined);     "undefined"

復(fù)雜數(shù)據(jù)類型 Object

ECMAScript中的對象其實(shí)就是一組數(shù)據(jù)和功能的集合。

創(chuàng)建Object實(shí)例:

new Object() => {}; 創(chuàng)建一個空對象

new Object();

    var person = new Object();
    person.name = "briup";
    person.age = 22;

使用對象字面量表示法

     不同的屬性之間用','分割,屬性名和屬性值之間用':'分割
    var person = {
        name : "briup",
        age : 22
    };

訪問對象屬性

點(diǎn)表示法,右側(cè)必須是以屬性名稱命名的簡單標(biāo)識符

person.name

中括號表示法,中括號中必須是一個計(jì)算結(jié)果為字符串的表達(dá)式

可以通過變量訪問屬性

    var a = "name";
    person[a];    //既person["name"]
    person["first name"]

如果屬性名中包含語法錯誤的字符,或者屬性名使用的是關(guān)鍵字或保留字,
可以使用中括號 person["first name"]

刪除屬性

delete只是斷開了屬性和宿主對象的聯(lián)系,而不會操作屬性中的屬性,并且delete
只會刪除自有屬性,不能刪除繼承屬性。在銷毀對象時(shí),為了防止內(nèi)存泄露,遍歷屬
性中的屬性,依次刪除所有屬性。

  • 語法:delete 屬性訪問表達(dá)式
  • 例子:delete stu.name //刪除學(xué)生對象中的name屬性

檢測屬性

in 檢測某屬性是否是某對象的自有屬性或者是繼承屬性

    "toString" in student

hasOwnProperty()檢測給定的屬性是否是對象的自有屬性,對于繼承屬性將返回false

    var o = {
        x:1
    }
    o.hasOwnProperty("x");    //true, x 為o的自有屬性
    o.hasOwnProperty("y");    //false,o 中不存在屬性y
    o.hasOwnProperty("toString");    //toString為繼承屬性
 propertyIsEnumerable() 檢測給定的屬性是否是該對象的自有屬性,并且該屬性是可枚舉的
    通常由JS代碼創(chuàng)建的屬性都是可枚舉的,但是可以使用特殊的方法改變可枚舉性。
    student.propertyIsEnumerable("toString")    //false 不可枚舉

Object屬性及方法

Object 類型所具有的任何屬性和方法也同樣存在于其他對象中,任何對象繼承于Object對象

Object中常用的方法:

  • hasOwnProperty(propertyName); 用于檢查給定的屬性名是否是對象的自有屬性,
  • toString(); 返回對象的字符串表示
  • valueOf(); 返回對象的字符串,數(shù)值,布爾值的表示。
    -------
  • propertyIsEnumerable(propertyName); 用于檢查給定的屬性在當(dāng)前對象實(shí)例中是否存在
  • constructor: 保存用戶創(chuàng)建當(dāng)前對象的函數(shù)
  • isPrototypeOf(object); 用于檢查傳入的對象是否是原型
  • toLocaleString(); 返回對象的字符串表示,該字符串與執(zhí)行環(huán)境的地區(qū)對應(yīng)

對象序列化

對象序列化是指將對象的狀態(tài)轉(zhuǎn)換為字符串,也可以反序列化,將字符串還原為對象
函數(shù),RegExp,Error對象,undefined值不能序列化和反序列化。

  • JSON.stringify(obj) 將對象序列化為Json字符串,只能序列化對象可枚舉的自有屬性。
  • toJSON() Object原型中沒有toJSON方法,但是對于要執(zhí)行序列化的對象來說
    JSON.stringify()方法會調(diào)用toJSON方法,如果待序列化的對象中存在這個
    方法,則調(diào)用,返回值即時(shí)序列化的結(jié)果,而不是原始對象。
  • JSON.parse(jsonStr) 反序列化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,270評論 0 4
  • 什么是 JavaScript 語言? JavaScript 是一種輕量級的腳本語言。所謂“腳本語言”(script...
    oWSQo閱讀 1,818評論 0 1
  • 再次回到學(xué)校本就讓我感到極度孤單恐懼,曾經(jīng)熟悉的同學(xué)朋友都已經(jīng)離開,所有的時(shí)刻都只有自己一個人去面對,面對這空蕩蕩...
    墨子涵閱讀 436評論 3 2
  • 草長鶯飛二月天,拂堤楊柳醉春煙。兒童散學(xué)歸來早,忙趁東風(fēng)放紙鳶。 陽春三月,正是放風(fēng)箏的好時(shí)節(jié)。今天天氣格...
    中學(xué)生馬小兌作文集閱讀 562評論 4 6
  • 弟弟最近的模仿能力與日俱增。 1.吃的模仿能力 姐姐在吃桂圓干,先咬開桂圓皮,再拿出桂圓肉來。 坐在游戲墊子上的弟...
    師爺是枚美男子閱讀 443評論 0 0