JavaScript基础二
一、流程控制
1. if ... else
var age = 20;
if (age > 18) {
console.log('ok')
}else {
console.log('back')
}
2.if ... else if ... else
var age = 30;
if (age < 18){
console.log('未成年')
}else if (age > 60){
console.log('退休')
}else {
console.log('上班')
}
3.switch
一定要加break,否則繼續(xù)往下執(zhí)行
var day = 3;
switch (day) {
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
break;
case 3:
console.log('星期三');
break;
default :
console.log('周末');
}
4.for循環(huán)
① for(var i=0;i<10;i++) {循環(huán)體}
for (var i=0;i<10;i++){
console.log(i)
}
② 死循環(huán)
for (;;){
console.log(1)
}
5.while循環(huán)
while (條件) {循環(huán)體中要修改條件}
var n = 10;
while (n >10) {
console.log(n);
n--
}
6.三元運(yùn)算
多用于賦值,對(duì)變量值做操作
// 三元運(yùn)算 var x = 100; var y = 10; var a = x > y ? x:y
二、函數(shù)
1.普通函數(shù)
function func(x,y) {
return x+y
}
特點(diǎn):① 多傳參數(shù)、少傳參數(shù)和不傳參數(shù)都不會(huì)報(bào)錯(cuò),沒(méi)有傳值相當(dāng)于傳了undefined
② 少傳參數(shù)會(huì)返回NaN
③ 返回值是多個(gè)時(shí),不會(huì)報(bào)錯(cuò),但默認(rèn)返回最后一個(gè)
④ 需要返回多個(gè)值時(shí),把返回值放在數(shù)組中
2.匿名函數(shù):多用于和其他的函數(shù)/方法搭配使用,也用于回調(diào)函數(shù)中
function (x,y) {
return x+y
}
var foo = function (x,y) {
return x+y
};
var ret1 = foo(10,20);
console.log(ret1);
3.ES6新特性,箭頭函數(shù)
箭頭函數(shù)時(shí)匿名函數(shù)的簡(jiǎn)寫(xiě)
var f = x , y => x+y
等同于
var f = function(x,y) {
return x+y
}
3.立即執(zhí)行函數(shù):一頁(yè)面使用兩個(gè)JS文件,一個(gè)JS定義變量,另一個(gè)JS打印變量;解決方法:函數(shù)的局部變量在外部是不能使用的
JS中沒(méi)有模塊的概念,多通過(guò)立即中子星函數(shù)實(shí)行變量的私有
// 立即執(zhí)行函數(shù)
(function(a,b){
console.log('自執(zhí)行函數(shù)');
console.log(x+y);
})(111,222);
4.函數(shù)中的argu傳入?yún)?shù)的個(gè)數(shù)
function add(a,b,c){
console.log(a+b+c);
console.log(arguments.length)
}
add(1,2,3,4,5,6)
6
6
5.函數(shù)的全局變量和局部變量
局部變量:
在JavaScript函數(shù)內(nèi)部聲明的變量(使用 var)是局部變量,所以只能在函數(shù)內(nèi)部訪問(wèn)它(該變量的作用域是函數(shù)內(nèi)部)。只要函數(shù)運(yùn)行完畢,本地變量就會(huì)被刪除。
全局變量:
在函數(shù)外聲明的變量是全局變量,網(wǎng)頁(yè)上的所有腳本和函數(shù)都能訪問(wèn)它。
變量生存周期:
JavaScript變量的生命期從它們被聲明的時(shí)間開(kāi)始。
局部變量會(huì)在函數(shù)運(yùn)行以后被刪除。
全局變量會(huì)在頁(yè)面關(guān)閉后被刪除。
6.作用域
首先在函數(shù)內(nèi)部查找變量,找不到則到外層函數(shù)查找,逐步找到最外層。
7.詞法分析
JavaScript中在調(diào)用函數(shù)的那一瞬間,會(huì)先進(jìn)行詞法分析。
詞法分析的過(guò)程:
當(dāng)函數(shù)調(diào)用的前一瞬間,會(huì)先形成一個(gè)激活對(duì)象:Avtive Object(AO),并會(huì)分析以下3個(gè)方面:
1:函數(shù)參數(shù),如果有,則將此參數(shù)賦值給AO,且值為undefined。如果沒(méi)有,則不做任何操作。
2:函數(shù)局部變量,如果AO上有同名的值,則不做任何操作。如果沒(méi)有,則將此變量賦值給AO,并且值為undefined。
3:函數(shù)聲明,如果AO上有,則會(huì)將AO上的對(duì)象覆蓋。如果沒(méi)有,則不做任何操作。
函數(shù)內(nèi)部無(wú)論是使用參數(shù)還是使用局部變量都到AO上找。
三、內(nèi)置對(duì)象和方法
JavaScript中一切皆對(duì)象
面向?qū)ο螅珽S5中沒(méi)有類(lèi)的概念。
創(chuàng)建對(duì)象用new關(guān)鍵字,實(shí)例化對(duì)象。
或者使用構(gòu)造函數(shù)創(chuàng)建對(duì)象,首字母大寫(xiě)。
// 創(chuàng)建新的對(duì)象
var name = new String('xiaoming');
// JS面向?qū)ο螅?gòu)造方法)
function Person(name) {
this.name = name
}
var p1 = new Person('xiaobai');
JavaScript中使用原型鏈的方法
// 給對(duì)象統(tǒng)一的方法
Person.prototype.dream = function () {
console.log(this.name + 'good')
};
p1.dream();
四、Date對(duì)象
創(chuàng)建對(duì)象可傳入?yún)?shù):日期字符串、毫秒數(shù)
// Date對(duì)象 var today = new Date(); //轉(zhuǎn)化為字符串 today.toLocaleString();
Date對(duì)象的方法 var d = new Date(); //getDate() 獲取日 //getDay () 獲取星期 //getMonth () 獲取月(0-11) //getFullYear () 獲取完整年份 //getHours () 獲取小時(shí) //getMinutes () 獲取分鐘 //getSeconds () 獲取秒 //getMilliseconds () 獲取毫秒 //getTime () 返回累計(jì)毫秒數(shù)(從1970/1/1午夜)
五、JSON對(duì)象
不用new,直接使用方法
JSON.parse() 字符串 --> JS的數(shù)據(jù)類(lèi)型
JSON.stringify JS的數(shù)據(jù)類(lèi)型 --> 字符串
var str1 = '{'name':'xiaoming'}';
var obj1 = {"name":"xiaoming"};
//JSON將字符串轉(zhuǎn)化為對(duì)象
var obj = JSON.parse(str1);
//JSON將對(duì)象轉(zhuǎn)化為字符串
var str = JSON.stringify(obj1);
六、RegExp對(duì)象
正則表達(dá)式對(duì)象,兩種創(chuàng)建方式
① new RegExp(正則表達(dá)式)
// 檢驗(yàn)手機(jī)號(hào)
var s1 = '13812341234';
// 創(chuàng)建正則表達(dá)式對(duì)象
var r1 = new RegExp('^1[3-9][0-9]{9}$');
// 驗(yàn)證判斷,返回布爾值
r1.test(s1)
② 簡(jiǎn)寫(xiě)正則表達(dá)式
/正則表達(dá)式/
// 檢驗(yàn)手機(jī)號(hào)
var s1 = '13812341234';
// 簡(jiǎn)寫(xiě)正則表達(dá)式
/^1[3-9][0-9]{9}$/.test(s1);
注意:
① test不傳值,相當(dāng)于傳了undefined,內(nèi)部當(dāng)做'undefined'處理
② JS的正則表達(dá)式里不能寫(xiě)空格
③ 兩個(gè)匹配模式
g:全局匹配,附帶lastIndex屬性,會(huì)記錄下一次匹配的開(kāi)始位置,一旦返回False則會(huì)將lastIndex清0
i:忽略大小寫(xiě)模式
七、Math對(duì)象
不用new,直接使用方法
相關(guān)方法: abs(x) 返回?cái)?shù)的絕對(duì)值。 exp(x) 返回 e 的指數(shù)。 floor(x) 對(duì)數(shù)進(jìn)行下舍入。 log(x) 返回?cái)?shù)的自然對(duì)數(shù)(底為e)。 max(x,y) 返回 x 和 y 中的最高值。 min(x,y) 返回 x 和 y 中的最低值。 pow(x,y) 返回 x 的 y 次冪。 random() 返回 0 ~ 1 之間的隨機(jī)數(shù)。 round(x) 把數(shù)四舍五入為最接近的整數(shù)。 sin(x) 返回?cái)?shù)的正弦。 sqrt(x) 返回?cái)?shù)的平方根。 tan(x) 返回角的正切。
總結(jié)
以上是生活随笔為你收集整理的JavaScript基础二的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 老子《道德经》第三十五章
- 下一篇: 拉钩网的起薪