day01 js筆記

啤u六六發表於2020-11-10

一、js的組成部分:

  • ECAMscript:js的核心語法
  • DOM: document Object model 文件物件模型,提供了一些屬性和方法用來操作dom元素
  • BOM: browser Object model 瀏覽器物件模型,提供了一些屬性和方法用來操作瀏覽器

window.location.href=“http://www.baidu.com”; 讓網頁進行跳轉
window.location.href 獲取網頁地址

二、ECMA 核心語法

變數和資料型別

1、變數(一個值的容器)

建立變數的六種方式:
  • var 宣告一個變數(es3)
  • function 宣告一個函式(es3)
  • const 宣告一個常量(es6)
  • let 宣告一個變數(es6)
  • class 宣告一個類
  • import 基於es6模組匯入一些資訊(es6)

2、js 的命名規則

  • 區分大小寫
  • 遵循駝峰命名法,由數字、字母、下劃線、$組成,但是不能以數字開頭;起語義化的名字;
  • 不能是關鍵字或者保留字
    • 關鍵字:就是代表特殊含義和功能的名字,比如var、function
    • 保留字:以後可能會成為關鍵字,只是現在預先保留佔用

3、兩種簡單的除錯方式

  • alert() //彈出框 (會把資料預設轉換成字串型別
  • console.log() //列印

4、資料型別

  • 基本資料型別
    • number(NAN(not a number))
    • string
    • boolean
    • null
    • undefined
null和undefined的區別!!》》》day02筆記
  • 引用資料型別
    • function
    • object
      • 普通物件
      • 陣列
      • 正則
      • math
      • date
  • es6新增的Symbol(唯一的資料)

1. number型別

正數、負數、0、小數、NAN


NAN不等於NAN

2. string

把字元用單引號或者雙引號抱起來的就是字串型別

var num = 1; 
var num2 = "1"; 
var num3 = '1'; 
3. boolean 布林型別

trun、false

4. null和undefined
  • null:空的物件指標
  • undefined:空,沒有
5. 普通物件
  • 普通物件:把屬性名和屬性值用大括號括起來的。
  • 屬性名(key、鍵):代表具有一定特徵的名字(一般只有數字和字串
  • 屬性值(value、值):具體的值(可以是任意的資料型別)
6. 陣列 []
7. Math 主要用來運算元字
Math.random(); // 獲取0-1之間的隨機數
Math.abs(-1.1); // 絕對值
Math.round(1.5); //四捨五入
8. date日期
new Date()
Mon Nov 09 2020 15:08:13 GMT+0800 (中國標準時間)
9. symbol 唯一的資料 es6新增
var str1 = Symbol("zhufeng"); 
var str2 = Symbol("zhufeng"); 
console.log(str1 == str2); //false

三、把其他資料型別轉換為number的方法

  1. Number() 方法

    • 字串:

      • 如果是空字串,轉換為0
      • 如果是字串中包含非有效數字,轉換為NAN
    • 布林型別

      • true:轉換結果1
      • false:轉換結果0
    • null:0

    • undefined:NAN

    • 物件:如果是引用資料型別的,轉換為數字型別的時候,會隱式的先呼叫toString()方法,然後再用Number轉數字;

    > var obj = {name:"123"};
    < undefined
    > obj.toString();
    < "[object Object]"
    > Number(obj);
    < NaN


    > var a = [];
    < undefined
    > a.toString();
    < ""
    > Number(a);
    < 0


    > var b = [1,2,3];
    < undefined
    > b.toString();
    < "1,2,3"
    > Number(b);
    < NaN


    > var c = [1];
    < undefined
    > c.toString();
    < "1"
    > Number(c);
    < 1

2、parseInt 把字串轉換成整數(從左向右查詢,遇到非有效數字或者小數點就停止查詢


> parseInt("12px23"); 

< 12

> parseInt("12.6555kkk"); 

< 12

> parseInt("12 3"); 

< 12

> parseInt("dasdas"); 

< NaN

3、parseFloat 把字串轉換為浮點型(可以識別到小數點)


> parseFloat("12.5"); 

< 12.5

> parseFloat("12.5sada"); 

< 12.5

> parseFloat("kk12.5sada"); 

< NaN

> parseFloat("12.5.6"); 

< 12.5

NAN !=NAN

四、isNAN 用來判斷一個數字是否為有效數字,返回結果是布林資料型別

如果說判斷的這個資料不是數字型別,先隱式呼叫Number()方法轉換為數字型別,再判斷

isNaN(1); 

> false

isNaN("2"); 

> false

isNaN(true); 

> false

isNaN(false); 

> false

isNaN(null); 

> false

Number(null); 

> 0

isNaN(0); 

> false

isNaN(undefined); 

> true

isNaN({name:"lili"}); 

> true

Number({name:"lili"}); 
NaN
isNaN("NAN"); 
true

isNaN([1, 2, 3]); 

> true

[1, 2, 3].toString(); 
"1, 2, 3"
isNaN("1, 2, 3"); 
true

五、字串

1、字串的長度

  • 獲取字串長度     變數.length
  • 最後一個字元對應的索引     變數.length-1
  • 索引:    每個字元對應的下標
  • 獲取相應的字元:    變數名[索引]

2、字串的計算

  • 字串的加法除了計算,還可能是字串的拼接
var i = "5"; 
i++; 
console.log(i); //6
console.log("6" + 10); //610
console.log("6"/"2"); //3
console.log("6"-"2"); //4
console.log("6"*"2"); //12

六、把其他資料轉換為布林

  1. Boolean();
  2. ! 轉換為布林取反;
  3. !! 轉換為布林;
  4. 把其他資料型別轉換為布林,除了以下五種情況,轉化的結果為false,剩餘的都為true
    • null
    • undefined
    • “”
    • NaN
    • 0

相關文章