js基礎(chǔ)知識
相等運算符:
相等運算符用來比較兩個值是否相等,如果相等會返回True,否則返回flase
使用 == 來做相等運算
當(dāng)使用==來比較兩個值時,如果值的類型不同,則會自動進行類型轉(zhuǎn)換,將其轉(zhuǎn)換為相同的類型,然后再比較
不相等!=來做運算
不相等用來判斷兩個值是否不相等,如果不相等返回true,否則返回false
- 使用 != 來做不相等運算
- 不相等也會對變量進行自動的類型轉(zhuǎn)換,如果轉(zhuǎn)換后相等它也會返回false
全等 === 來做全等運算
- 用來判斷兩個值是否全等,它和相等類似,不同的是它不會做自動的類型轉(zhuǎn)換
如果兩個值的類型不同,直接返回false
不全等!==
用來判斷兩個值是否不全等,和不等類似,不同的是它不會做自動的類型轉(zhuǎn)換
如果兩個值的類型不同,直接返回true
注意:
1.undefined衍生null,所以這兩個值做相等判斷時,會返回true
2.NaN不和任何值相等,包括它本身
都回返回false
3.可以通過isNaN()函數(shù)來判斷一個值是否是NaN,如果該值是NaN則返回true,否則返回false
條件運算符:
條件運算符也叫三元運算符
語法:
條件表達式?語句1:語句2;
- 執(zhí)行的流程:
條件運算符在執(zhí)行時,首先對條件表達式進行求值,
如果該值為true,則執(zhí)行語句1,并返回執(zhí)行結(jié)果
如果該值為false,則執(zhí)行語句2,并返回執(zhí)行結(jié)果
如果條件的表達式的求值結(jié)果是一個非布爾值,會將其轉(zhuǎn)換為布爾值然后在運算
例如:
true?alert("語句1"):alert("語句2");
false?alert("語句1"):alert("語句2");
如果是比較值的大小,可以使用如下代碼運行:
var a = 300;
var b = 143;
var c = 50;
a > b ? alert("a大"):alert("b大");
//獲取a和b中的最大值
var max = a > b ? a : b;
//獲取a b c 中的最大值
max = max > c ? max : c;
運算符的優(yōu)先級
聲明變量時可以使用(,)來同時聲明那個多個變量并賦值
例如:
var a=1, b=2, c=3;
就和數(shù)學(xué)中一樣,在JS中運算符也有優(yōu)先級,
比如:先乘除 后加減
在JS中有一個運算符優(yōu)先級的表,
在表中越靠上優(yōu)先級越高,優(yōu)先級越高越優(yōu)先計算
如果優(yōu)先級一樣,則從左往右計算
但是這個表我們并不需要記憶,如果遇到優(yōu)先級不清楚
可以使用()來改變優(yōu)先級
js代碼塊
語句是從上向下一條一條的執(zhí)行,在js中可以使用{}進行分組,稱為代碼塊
js中的代碼塊,只具有代碼塊的作用沒有其他作用
代碼塊內(nèi)容的內(nèi)容,在外部是完全可見的
js操作屬性
DOM是為了操作文檔(網(wǎng)頁)的API,document是它的一個對象
BOM是為了操作瀏覽器的API,window是它的一個對象
常用BOM對象還有:alert、定時器等
document通過.的方式調(diào)用
代碼演示:
//整個文檔加載完之后執(zhí)行一個匿名函數(shù),這是js調(diào)用的基本代碼
window.onload = function(){
document.getElementById('div1').title = "我看到了!";
//變量oA代表整個a標簽
var oA = document.getElementById('link1');
oA.;
oA.title = "跳轉(zhuǎn)到騰訊網(wǎng)"
//打印link1的id
alert(oA.id);
alert(oA.title);
}
js換膚
js的換膚就是可以更改標簽的任何屬性
代碼例子:
<script type="text/javascript">
window.onload = function(){
// 整個頁面都加載之后執(zhí)行
var oLink = document.getElementById('link1');
//
oLink.href = "css/2.css";
// 可以操作任何標簽的任何屬性
alert(oLink.id);
// 讀取屬性
js操作style屬性
style屬性中的樣式屬性,沒有‘-’號,其他寫法相同,使用小駝峰命名法
js操作class
由于class是js中的保留關(guān)鍵字,所以設(shè)置class屬性時,要寫為className
代碼:
oDiv.className = 'box02';
js中中括號的操作屬性
通過[]操作來寫變量
通過innerHTML可以讀寫元素包裹的內(nèi)容,只能重寫頁面的一部分,而douncument.write是重繪整個頁面
代碼例子:
window.onload = function(){
var oDiv = document.getElementById('div1');
//oDiv.style.color = 'red';//red必須加引號,否則會認為它是一個變量,引起來會認為它是一個值,賦值給=號左邊
var attr = 'color';
// oDiv.style[attr] = 'red';
/* 通過[]操作屬性可以寫變量 */
oDiv['style'][attr] = 'red';
/* 通過innerHTML可以讀寫元素包括的內(nèi)容 */
alert(oDiv.innerHTML);//讀取標簽里面包裹的元素,即“這是一個div元素”
var oDiv2 = document.getElementById('div2');
// oDiv2.innerHTML = '這是第二個div元素';//向div標簽中插入內(nèi)容
oDiv2.innerHTML = "<a ;//向div標簽中插入超鏈接標簽
js可控制換膚
行間調(diào)用函數(shù):
<input type="button" name="" value="皮膚01" onclick="skin01()" />
<input type="button" name="" value="皮膚02" onclick="skin02()"
提取行間事件
window.onload = function(){
/* 提取行間事件 */
var oBtn01 = document.getElementById('btn01');
var oBtn02 = document.getElementById('btn02');
oBtn01.onclick = skin01;//這里不能寫skin01(),這樣寫就馬上執(zhí)行了
oBtn02.onclick = skin02;
// 只要寫括號()函數(shù)就執(zhí)行
}
function skin01(){
var oLink = document.getElementById('link1');
oLink.href = "css/1.css";
}
function skin02(){
var oLink = document.getElementById('link1');
oLink.href = "css/2.css";
}
變量和函數(shù)解析
變量與解析把聲明提前
函數(shù)與解析把整個函數(shù)提前
例如:
myalert();//彈出hello!
function myalert(){
alert('hello!');
}
匿名函數(shù):
用function()直接調(diào)用的
例如:
oDiv.onclick = function(){
alert('hello');
}
函數(shù)傳參
我們可以通過調(diào)用函數(shù)來個函數(shù)傳遞參數(shù)然后改變標簽屬性目的
例如
window.onload = function(){
var oDiv = document.getElementById('div1');
changeStyle('color', 'gold');
changeStyle('background', 'red');
changeStyle('width', '300px');
changeStyle('height', '300px');
changeStyle('fontSize', '30px');
function changeStyle(styl, val){
oDiv.style[styl] = val;
}
函數(shù)return關(guān)鍵字
return有兩種意義:
1.返回函數(shù)設(shè)定的值,同時結(jié)束函數(shù)的運行。
例如:
return c;
2.不返回值,僅結(jié)束函數(shù)的運行,阻止,默認行為
流程控制語句
流程控制語句
- JS中的程序是從上到下一行一行執(zhí)行的
- 通過流程控制語句可以控制程序執(zhí)行流程,
使程序可以根據(jù)一定的條件來選擇執(zhí)行
- 語句的分類:
1.條件判斷語句 if....else
2.條件分支語句switch.......case
3.循環(huán)語句
條件判斷
語法一:if(條件表達式){語句...
語法二;if(條件表達式){語句... }else{語句...}
例子:
oBtn.onclick = function(){
if(oDiv.style.display == 'block' || oDiv.style.display == ''){
oDiv.style.display = 'none';
}else{
oDiv.style.display = 'block';
}