js筆記

# 三句話 #
- alert(“內容”);
效果:在頁面中彈出一個提示框,提示信息從alert後面的引號中的文本來的。
注意:如果頁面上出現彈出框以後,頁面的位置不能改變,並且不能關閉。
- console.log(“內容”);
向瀏覽器的控制檯輸出一句話。
作用:用來進行代碼調試。
- prompt(“內容”);
彈出一個輸入框,給用戶提供輸入信息的位置。

# 數據類型 #
- 字符串:String
特點:用引號引起來的文本的串。
注意:
1) 這個引號既可以是單引號,也可以是雙引號。
2) 如果要在字符串輸出引號應該怎麼辦
a. 如果字符串有雙引號,可以將字符串的引號改變爲單引號
b. 可以使用轉譯符。
常用的轉譯符:

\'  單引號
\"  雙引號
\n  換行
\t  縮進
\b  空格
\r  回車
\\  斜槓
  • 數值類型:Number
    整數,小數。
    特點:表達的是一種數據的量
    加號的作用:
1) 兩個字符串用加號連接,那麼將來加號起到的作用是連接這兩個字符串。
2) 兩個數值用加號連接,那麼將來加號起到的作用是加法運算符的作用。
3) 加號連接的兩個直接量中有一個是字符串,那麼加號的作用是連接。
  • 判斷數據的類型:
    typeof: 判斷數據類型
    用法:
    typeof(直接量)
console.log(typeof("abd")); //string
console.log(typeof(123)); //number

typeof 直接量

console.log(typeof "abd"); //string
console.log(typeof 123); number
  • Math對象
    Math.pow(2,53)            253次冪
    Math.round(.6)            => 1.0 四捨五入
    Math.ceil(.6)             => 1.0 向上求整
    Math.floor(.6)            => 0.0 向下求整
    Math.abs(-5)
    Math.max(x,y,z)
    Math.min(x,y,z)
    Math.random()             生成一個大於等於0小於1.0的僞隨機數
    Math.PI
    Math.E
    Math.sqrt(3)
    Math.pow(3,1/3)
    Math.sin(0)
    Math.log(10)              10的自然對數
    Math.log(100)/Math.LN10   以10爲底100的對數
    Math.log(512)/Math.LN2    以2爲底512的對數
    Math.exp(3)               e的3次冪
  • 數據類型轉換

強制轉換:

var a = "123";
var b = Number(a) + 1;
console.log(b);           //124
console.log(typeof b);    //number
var c = parseInt(a);
console.log(c);     //number

var a = "abc";
var b = Number(a);
console.log(b);         //NaN
console.log(typeof b);    //number

number
1. 如果是數字值,返回本身
2. 如果字符中包含有效的浮點格式,將其轉換爲浮點數值
3. 如果是空字符串,將其轉換成0
4. 如果字符串中包含非以上格式,則將其轉換成爲NaN

parseInt
1. 忽略字符串前面的空格,直至找到第一個非空字符
2. 如果第一個字符不是數字符號或者負號,返回NaN
3. 如果第一個字符是數字,則繼續解析直至字符串解析完畢或者遇到一個非數字符號爲止
4. 如果是小數,會轉成整數(向下取整)

parseFloat
與 parseInt 一樣,唯一區別是可以保留小數。

注意:
parseInt 可以傳遞兩個參數,第一個參數是要轉換的字符串,第二個參數是要轉換的進制
例: var num1 = parseInt(“A”,16); //A按16進制解析是10

轉字符串
- .toString()

var a = 123;
a = a.toString();
  • String()
var a = 123;
a = Srting(a);

第一個方法是直接調用這個變量對象中的方法,第二個就是直接使用強制轉換的方法。

  • boolean轉換
var a = "true";
a = Boolean(a);

注意:
false “”(空字符串) 0 NaN undefined null 會轉換成false,其餘轉換成true

  • 隱式轉換
    1. 隱式轉換成Number:
      直接在要轉換的內容前加上”+” “-” “*” “/” “%”;
var a = "123";  ===>  a =+a;
var a = "123";  ===>  var b = a * 2;  ===>   246;
  1. 隱式轉換成字符串:
var a = 123;  ===>  a = a + "";

3.隱式轉換成boolean:

var a = 123; ===> a = !!a;
  • script標籤屬性
    type
    type=”txt/javascript”
    可以省略
    async
    async=”async”
    值可以省略,立即異步下載外部js,不影響頁面其它的操作,js下載完畢立即執行
    defer
    defer=”defer”
    值可以省略,腳本延遲到文檔完全被解析和顯示後再執行,只有外部腳本可以使用
  • 數值
    最小值:Number.MIN_VALUE 5e-324
    最大值:Number.MAX_VALUE 1.7976931348623157e+308
    無窮大:Infinity
    無窮小:-Infinity
  • 數值檢測
    NaN 非數值 (Not a Number)
    – console.log(“abc”/18); //結果是NaN
    – NaN 與任何值都不相等,包括NaN本身
    isNaN(): 任何不能被轉換爲數值的值都會導致這個函數返回 true
    – isNaN(NaN); //true
    – isNaN(“blue”); //true
    – isNaN(123); //false

  • 邏輯運算符
    &&
    如果第一個操作數爲假,返回第一個操作數,第二個操作數不執行
    如果第一個操作數爲真,則返回第二個操作數
    ||
    如果第一個操作數爲假,返回第二個操作數
    如果第一個操作數爲真,返回第一個操作數,第二個操作數不執行 (常用)
    沒有重載
    重載:函數的名字相同,但是參數個數不同
    JavaScript中沒有重載的概念,下面的相同名稱的函數會把上面的函數覆蓋,所以不允許出現同名的函數(大多數情況下)
    函數的兩種定義方式

1.函數聲明
function f(a,b) {
    return a + b;
}
console.log(f(5,6));
2.函數表達式
//myFun和f等價
var myFun = function (a,b) {
    return a + b;
}
console.log(myFun(6,7));

變量的作用域
不使用var聲明的變量是全局變量,不推薦使用
變量作用域只有兩種,全局變量和函數內的變量
js中沒有塊級作用域
在其他語言中,在代碼塊中定義的變量,外部是訪問不到的,比如在for循環中定義的變量。
但是在js中沒有塊級作用域
典型題目1

var num = 10;
fun();
function fun() {
    console.log(num);
    var num = 20;
}

輸出結果:undefined
js是解釋型語言,由解析器執行
解析器解析過程,
預解析:
先找var,function和參數(函數參數)
找到var和function之後,會把var和function函數提前(var僅提前聲明,不提前賦值)
從上到下一行一行執行代碼

var num;               //全局預解析
function fun() {
    var num;           //局部預解析
    console.log(num);
    num = 20;
}
num = 10;
fun();

典型題目2

var a = 8;
f1();
function f1() {
    var b = 9;
    console.log(a);
    console.log(b);
    var a = '123';
}

輸出結果:undefined 9
預解析後:
//全局預解析時只把函數提前,在函數要被調用前纔對函數內部進行局部預解析

var a;
function f1() {
    var b;
    var a;
    b = 9;
    console.log(a);
    console.log(b);
    a = '123';
}
a = 8;
f1();

典型題目3

f1();
console.log(c);
console.log(b);
console.log(a);
function f1() {
    var a = b = c = 9;
    console.log(a);
    console.log(b);
    console.log(c);
}

輸出結果:9 9 9 9 9 報錯
預解析後:

function f1() {
    var a;           //a是局部變量
    a = b = c = 9;   //b和c是全局變量
    console.log(a);
    console.log(b);
    console.log(c);
}
f1();
console.log(c);
console.log(b);
console.log(a);

命名函數
匿名函數
沒有命名的函數
一般用在綁定事件的時候

function () {}

自調用函數
只能執行一次

(function () {
    console.log("test");
})();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章