javascript的基礎

js的組成

ECMAScript:解釋器(翻譯)

DOM:Document Object Model (操作HTML的能力)

BOM:Browser(l瀏覽器) Object Model

變數類型

類型:typeof運算符

用法、返回值

常見類型:number、string、boolean、undefined、object、function

(一個變數應該只存在一種類型的數據)

a = 10
console.log(typeof a)//number 數字
b = "你好" console.log(typeof b)//string 字元串
c = true console.log(typeof c)//boolean: true false
d = function(){} console.log(typeof d)//function 函數

var f; console.log(typeof f) //f 1、沒有定義 undefined 2、定義,沒賦值 g = {} console.log(typeof g)//object 對象

數據類型轉換:

顯示類型轉換(強制類型轉換)

parseInt()、parseFloat()

//parseInt()將字元串轉為整數
//parseFloat() 將字元串,並返回一個浮點數。
a = “12”
console.log(parseInt(a) + 1)//13
console.log(parseFloat(a))//12
q = “1.2asd” 
console.log(parseInt(q))//1
console.log(parseFloat(q))//1.2
f = 12.3 
console.log(parseInt(f))//12
console.log(parseFloat(f))//12.3

b  = “abc”
console.log(parseInt(b))//NaN

var c = parseInt(‘abc’)
var b = parseInt(‘abc’)
console.log(isNaN(c))//true isNaN判斷c是不是NaN
console.log(c == b)//false
//NaN與NaN不相等

隱式類型轉換

==、===、減法

a = 5
b = "5"
console.log(a == b)//true 先轉換類型,然後比較
console.log(a === b)//false 不轉換,直接比(嚴謹)

c = "12"
d = "5"
console.log(c + d)//125 加號字元串的鏈接  數字的相加
console.log(c - d)//7 減號數字相減

 

變數作用域

全局變數、局部變數

局部變數:只能在定義他的函數裡面使用

function a(){
    //局部變數:只能在定義他的函數裡面使用
    var b = 12;
    console.log(b)//12
}
function c(){
    console.log(b)//報錯
}
a()
c()
var b;//全局變數
function a() {
    b = 12;
    console.log(b)//12
}
function c() {
    console.log(b)//12
}
a()
c()

閉包

//閉包:子函數可以使用父函數的局部變數
function aa(){//父函數
    var a = 10;
    function bb(){//子函數
        console.log(a)//10
    }
    bb();
}
aa();

運算符

算數:+加、-減、*乘、/除、%取余

 

 

 

賦值:=、+=、-=、*=、/=、%=

關係:<、>、<=、>=、=、==、===、!=、!==

邏輯:&&與、||或、!否(真假互換)

運算符優先順序:括弧

判斷:if、switch、?:(三目運算符)

if (滿足條件1) {
    //執行語句1
} else if (滿足條件2) {
    //執行語句2
} else {
    //以上都不成立執行
//語句n
} switch(變數) { case 值1: //變數=值1執行 //語句1 break; case 值2: //變數=值2執行 //語句2 break; case 值3: //變數=值3執行 //語句3 break; //...... default: //以上都不滿足執行 //語句n }
var f = 1
switch(f)
{
    case 1:
        console.log(1)//1
        break;
    case 2:
        console.log(2)
        break;
    default:
        console.log(3)    
}
var f = 4
switch(f)
{
    case 1:
        console.log(1)
        break;
    case 2:
        console.log(2)
        break;
    default:
        console.log(3)//3    
}

條件?語句1:語句2(三目運算符)

//三目運算符
var a = 44;
a%2 ? console.log("單數") : console.log("雙數")//雙數

 

 

循環:while、for

跳出:break、continue

for(var i = 0;i < 5;i++){
    if(i == 3){
        break;//整個循環中斷跳出
    }
    console.log(i)//0、1、2
}

 

 

 continue

for(var i = 0;i < 5;i++){
    if(i == 3){
        continue;//本次循環中斷,後面繼續
    }
    console.log(i)//0、1、2、4
}

 

 

 

真:true、非零數字、非空字元串、非空對象

假:false、數字零、空字元串、空對象、undefined

var a = true;//true、非零數字、非空字元串、非空對象
if(a){
    console.log("真")//真
}else(
    console.log("假")
)

var a = false;//false
if(a){
    console.log(“真”)
}else(
    console.log(“假”)//假
)
 
var a = “”;//空字元串
if(a){
    console.log(“真”)
}else(
    console.log(“假”)//假
)