變量
聲明變量同時(shí)賦值
var name='亞索';
var number=20;
先聲明變量再賦值
var name
name = '亞索';
var name, toop ,node;
name = '亞索';
toop = 'EQ閃';
node = 'R三風(fēng)';
基于變量聲明其他變量
var? Ahead = 20;
var Yasuo = '亞索的人頭數(shù)是'+ Ahead +'個(gè)';
var Flash= 50 ;
var present = `一局比賽${name}用了${Flash}個(gè)閃現(xiàn)`;// 注意 這里使用的是 `` 反引號
通過.可以訪問變量的屬性陡厘,如length
var Jess = "相信我:如果我們夠機(jī)靈的話抽米,皮爾特沃夫就能強(qiáng)勢地面對任何威脅。我就是個(gè)活生生的例子糙置≡迫祝——杰斯";
》Jess.length
> ?46
獲取字符串的最后一個(gè)字符
var Jess = "相信我:如果我們夠機(jī)靈的話,皮爾特沃夫就能強(qiáng)勢地面對任何威脅谤饭。我就是個(gè)活生生的例子标捺。——杰斯";
》Jess[Jess.length-1]
> 斯
更改變量
通過++可以讓變量自增 1揉抵,--可以讓變量自減 1亡容。
var numder = 6 ;
numder++ ?// ?++后 numder 會(huì)變成 7
numder-- // --后 numder 會(huì)變成 6
數(shù)據(jù)類型
數(shù)字 ?Number
字符串 ?String
布爾值 Boolean
對象 ?Object
Null
Undefined
Symbol ? ?//ES6
var age = 18 ; ? //數(shù)字
var string = '在哪里'; ? ?// 字符串
var? valid = true; // 布爾值
var young = ?(age => 16 && age <= 50) ?// 布爾值
var ljh = {? ? ? ? ? ? ? ? ? ? ? ? ? //對象
name:{zh:'陸家華',en:'ljh'},? ? ? //對象
height:179,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //對象
} ? //對象
通過? . ?訪問對象的屬性
》ljh.height
> 179
》ljh.name.zh
> ''陸家華
弱類型
JavaScript 是一門弱類型的編程語言,因此聲明變量的時(shí)候不需要同時(shí)聲明數(shù)據(jù)類型冤今。
typeof操作符查看數(shù)據(jù)類型
重新賦值可以改變變量的數(shù)據(jù)類型
>var ?a = 'Apple';
→undefined
>typeof a? //? 查看 a 的數(shù)據(jù)類型
→"String" ?//當(dāng)前變量的數(shù)據(jù)類型 ?字符串
>a=97; ? //重新賦值 ? 數(shù)字
→97>
typeof a? //重新賦值數(shù)字后闺兢, 查看 a 的數(shù)據(jù)類型
→"number" ? //數(shù)字類型
ES6
let ? 不允許在同一作用域內(nèi)使用 let ?重復(fù)聲明變量
let
是一個(gè)快狀聲明域的變量 , ?一聲明就不可修改
if(navigator.language)?{
letlanguage=navigator.language;
console.log('當(dāng)前瀏覽器語言是'+language);
}
若嘗試在if代碼塊外訪問language會(huì)報(bào)錯(cuò)。
language
× UncaughtReferenceError:language is not defined
const ? 常量
const? 常量 ? ?一聲明就不可修改
const ?CHINESE_YEAR_2017='雞';
CHINESE_YEAR_2017='雞';
CHINESE_YEAR_2017='狗';
× UncaughtTypeError:Assignment to constant variable.
使用const聲明常量 必須 ? ? 同時(shí)賦值 戏罢,否則會(huì)報(bào)錯(cuò)屋谭。
? ? ? ? ? ? ? ? ?
全局變量
在頂層環(huán)境聲明的變量是全局變量。應(yīng)該盡量避免使用全局變量龟糕。
使用var聲明的全局變量會(huì)成為頂層對象window(瀏覽器) 或global(Node.js) 的屬性桐磁。
>varhi='Hi!'→undefined>hi→"Hi!">window.hi→"Hi!"
在非嚴(yán)格模式下,如果沒有通過var ?let或const直接聲明的變量會(huì)成為全局變量讲岁。
functionhello() { ?message='你好';}hello();
>message
→"你好"
>window.message
→"你好"
使用 let 或 const 聲明的全局變量?不是?頂層對象 window (瀏覽器) 或 global(Node.js) ?的屬性所意。
>let face='狗';
→undefined
>face
→"狗"
>window.face //在頂層對象 window (瀏覽器) 或 ?global(Node.js) 上 找不到 face 的屬性
→undefined
本節(jié)結(jié)論
推薦使用let聲明變量,使用const聲明常量催首。
盡量避免使用全局變量扶踊。
盡量避免使用全局變量。
盡量避免使用全局變量郎任。
? ? ? ? ? ? ? ?
?? ? ? ? ? ? ?條件
if ?條件判斷
//document.body.scrollTop ? ? ?為body頁面滾動(dòng)的距離
if(document.body.scrollTop? >= 0 ){ ? ? ? //如果頁面滾動(dòng)的距離大于0秧耗,
? ? document.body.scrollTop=0; ? ? //則讓頁面還回 0
} //如果沒有則沒有變化
var? ? price = 1000 ,? disc= 0.8 ;? //?聲明產(chǎn)品價(jià)格很折扣變量
var ? ?huyu = true ; ? ? // ? 聲明 huyu 是會(huì)員
if (huyu){? ? ? ? ? ? ? ? ? ? ? ? ? //付錢時(shí)如果是會(huì)員
? ? price *= disc;? ? ? ? ? ? ? //則在價(jià)格上 打0.8折
}
console.log(`價(jià)格是 ${price} 元`) ? ? ? ? ? ? ?//得出優(yōu)惠價(jià)格
if ? ?...else
如果不滿足則運(yùn)行另一個(gè)
//Math.random() 用于生成一個(gè) 0 - 1 之間的隨機(jī)數(shù)。
var a=Math.random();
var b=Math.random(); ? ? ? ? ??
if(a>b) {console.log('隨機(jī)數(shù) a 大于 b')} ?//如果a大于b則輸出if下面的代碼舶治,
else{console.log('隨機(jī)數(shù) a 小于或等于 b') };//如果不大于則輸出else下面的代碼
else if?? 各種可能
var width=window.innerWidth;//獲取當(dāng)前窗口寬度if(width<=320) {
console.log('窗口寬度 <= 320px');
}else if(width<768) {console.log('320px < 窗口寬度 < 768px');
}else if(width<=1024) {console.log('768px <= 窗口寬度 <= 1024px');
}else{console.log('窗口寬度 > 1024px');
}
嵌套 if...else
條件(三元)運(yùn)算符 ( ?: )
按情況返回以下倆個(gè)表達(dá)式?
slenu ? '在線' : '離線' ; ? ?// 如果是true則返回在線分井, ?是false則返回離線
//navigator.onLine ? ? ? ? ? 查看網(wǎng)絡(luò)是否連接
》var slenu = navigator.onLine ? '在線': '離線' ;
> "在線"? ? ? ? // 如果是true則返回在線,? 是false則返回離線
》var isBirthday = false; ? ?// ?false?
》console.log(isBirthday ? '生日快樂':'早啊'); ?//如果是flase則返回 第二個(gè)?
>? "早啊" ? ? ? ? ??
function home(){ console.log('回家'); }
function work(){console.log('上班');}
new Date().getHours() >=18 ? home() : work() ; //new Date().getHours() 當(dāng)前時(shí)間幾點(diǎn)
//如果時(shí)間是 大于18或者等于18 則返回 home霉猛。 如果小于則返回work
switch
case是switch的子屬性尺锚,用來添加
var province = ' 廣東省';
switch(province){
case'江蘇省':?
case'浙江省':
case'上海市':
console.log('江浙滬包郵!');
break;
case'廣東省':
case'福建省':
console.log('郵費(fèi):20元');
break;
case'西藏自治區(qū)':
case'新疆自治區(qū)':
case'內(nèi)蒙古自治區(qū)':
console.log('郵費(fèi): 30元');
break;
case'香港特別行政區(qū)':
case'澳門特別行政區(qū)':
console.log('郵費(fèi): 60元');
break;default:
console.log('郵費(fèi): 18元')}
..