1.JavaScript是什麼?
JavaScript是一種直譯式腳本語音,是一種動態的,弱類型的,基於原型的語言。
直譯式:直接編譯並執行
腳本:凡是不能獨立運行需要依賴其他程序的,通常都叫做腳本
動態類型:聲明一個類型,能夠隨時改變它的類型
弱類型:允許變量運算時進行隱式數據類型轉換
基於原型:原型的主要作用是繼承,對象之間的繼承,主要是靠原型鏈接
2.js能做什麼?
網頁前端開發(Javascript的老本行)
移動開發 webapp 混合式應用
網站後端開發(Node.js可以讓js在後端運行)
插件開發(由於js跨平臺這一特性,很多插件使用js進行開發,因爲一次開發可以保證跨平臺使用)
桌面開發(主要是指chrome瀏覽器能把js寫的程序打包成桌面應用)
遊戲開發 等等。。。
3.js的引入及運行
內部引入:在html文件中直接寫在script標籤內部
標籤內引入:直接寫在標籤內
按鈕
外部引入:在html文件中通過script標籤引入外部js文件
注:script標籤在哪裏都可以,爲了規範建議在前
4.js的數據類型
簡單數據類型:
string、number、boolean、undefined、null
number包括整型,浮點型,和NaN
NaN 即非數字值,是number類型中的一個特殊值
NaN 用於表示本來要返回一個數值的操作數,結果未能返回數值的情況(‘a’-1) (‘b’-3)
特點1:
任何涉及NaN的操作都爲NaN。
特點2:
NaN與任何值都不相等,包括自身
- isNaN() 判斷值是否爲NaN,返回布爾值
- parseInt() 解析一個字符串,並返回一個整數。也可將其他進制數字轉換爲十進制parseInt(數字或能解析成數字的字符串,進制數),十六進制時候abcdef只能是字符
- parseFloat() 解析一個字符串,並返回一個浮點數
- Number.toFixed(n) 方法可把 Number 四捨五入保留n位小數,返回字符串
boolean 類型,值爲布爾值
boolean類型有兩個值 : true 和 false
undefined 類型,表示值未定義
undefined類型只有一個特殊值爲 : undefined
var und;
聲明變量未賦值,這個變量的值就是undefined
null 類型,表示空
null類型只有一個特殊值爲 : null
如果變量準備在將來用於保存一個對象,那麼該變量最好初始化爲null
複雜數據類型:
object 類型,值爲對象類型
JS中 { } 表示對象,[ ] 表示數組,function 表示函數
var obj1=[1,2,3];
var obj2={‘name’:‘laowang’};
var obj3=function () { };
判斷數據類型:typeof()
// 判斷數據類型運算符 typeof 返回值有6種
字符串:
console.log( typeof str1 );//‘string’
數字:
console.log( typeof(num1) );//‘number’
布爾值:
console.log( typeof(boo1) );//‘boolean’
undefined:
console.log( typeof(und) );//‘undefined’
null:
console.log( typeof(nul) );//‘object’
數組
console.log( typeof(arr) );//‘object’
對象
console.log( typeof(obj) );//‘object’
函數
console.log( typeof(fun) );//‘function’
5.逗號、賦值、算術、關係、邏輯運算符
逗號運算符
-
使用逗號運算符可以在一條語句中執行多個操作,如: var a = 1, b = 2, c = 3;
-
返回整體的最後一個值 console.log( (a,b,c) );
賦值運算符
= “+=” “-=” "*= " “/=” “%=”
- JS中的 ‘=’ 號並非數學計算中的’='號,而是賦值運算符 如:a = 5,應該理解爲,把5這個值,賦值給變量 avar a = 1;a += 5 --> a = a + 5;console.log(a);
算術運算符
加 減 乘 除 餘
“+” - * / %
取餘結果正負只與被取餘數有關
遞增和遞減運算符
++ 和 - -
1++ 表示值遞增加1
2- -表示值遞減減1
var i = 0;
- ++i 表示先遞增,後取值
即,a=++i,a=1,i=1 - i++ 表示先取值,後遞增
即a=i++,a=0,i=1
關係運算符
> < == === >= <= != !==
關係運算符返回布爾值
等於 == 只比較值是否相等(忽略類型)
全等 === 先比較類型(內存地址),再比較值
- 表達式兩側都是數值 --> 正常比較
- 表達式兩側都是字符串 --> 正常比較(先比較第一個字符),比較字符的ASCII碼值,‘0’ – 48,‘A’ – 65,‘a’ –
97 - 表達式兩側有一側是純數字字符串,該字符串自動轉成數字,再進行比較
兩側都是純數字字符串,依舊轉換成數字再進行比較 - 表達式兩側有一側是非數字字符串,不能正常比較,所有非正常比較都返回 false
三元運算符(三目運算符):
Boolean ? express1 : express2;
var str = 3 > 4 ? ‘aaa’ : ‘bbb’;
條件成立執行冒號前的代碼,反之執行後面的代碼
優點:代碼少
缺點:不方便閱讀和維護
邏輯運算符
邏輯運算符返回布爾值
- && 邏輯與,&&前後均爲true纔會返回true
- || 邏輯或,||前後有一個爲true就會返回true
- ! 邏輯非,!求當前值的相反值
短路操作
- &&利用條件1爲false就不去執行條件二(一個爲false結果就爲false)
- ||利用條件1位true就不去執行條件二(一個爲true結果就爲true)
var a = 3, b = 6;
var age = a < b && 26;
//得到age爲26,只要條件1爲true時纔會執行條件2
var age = a > b && 26;
//得到age爲false,條件1爲false則直接返回false,不再向後執行