1、基本概念理解
一、js引入方式
css引入方式:
1、行內(nèi)式
2、內(nèi)嵌式
3、外鏈?zhǔn)?link標(biāo)簽
4、導(dǎo)入式
js的引入方式:
1、行內(nèi)式
2、內(nèi)嵌式 script標(biāo)簽
3、外鏈?zhǔn)?script標(biāo)簽的src屬性,js文件的路徑
外鏈?zhǔn)絪cript標(biāo)簽里面不寫js代碼-->不執(zhí)行不報(bào)錯(cuò)
4、 相當(dāng)于導(dǎo)入式 document.write('<script src="js路徑"></script>') 二、js輸出方式 1、alert(); 在頁(yè)面中彈出一個(gè)層
// alert("hello");
2.console.log();
// 要輸出的內(nèi)容,逗號(hào)隔開(kāi) ("a","b","c")
// 里面放的都是字符串或者變量,帶引號(hào)的,只有純數(shù)字的時(shí)候可以省略引號(hào)//也可以放函數(shù)
// 一般用于調(diào)試,不會(huì)影響網(wǎng)頁(yè)中的內(nèi)容
3.document.write();
直接在頁(yè)面中顯示,不停的輸出
4、inner HTML/inner Text
動(dòng)態(tài)的向指定元素中添加內(nèi)容
5、console.dir
6.confirm
7.console.table 三、js組成
1、ECMAscript : ES5 ES6 規(guī)定了js中的命名規(guī)范、變量、數(shù)據(jù)類型、基本語(yǔ)法、操作語(yǔ)句
2、DOM : document object model 文檔對(duì)象模型
3、BOM : browser object model 瀏覽器對(duì)象模型
html css js:
先加載css文件(head里面,保證用戶體驗(yàn)) 再加載html代碼
js代碼通常放到body的最后面,js主要就是操作html元素的, 四、js命名規(guī)范
1、嚴(yán)格區(qū)分大小寫
2、駝峰命名法(匈牙利命名法)
1)首字母小寫,第二個(gè)有意義的單詞開(kāi)始首字母大寫 不能用拼音和中文
2)可以由 數(shù)字 字母 _ $ 組成
3)不能以數(shù)字開(kāi)頭,也不能全部為數(shù)字
3、避開(kāi)關(guān)鍵字 保留字(未來(lái)可能作為關(guān)鍵字的)
4、 五、js的變量 //變量:可變的量
// 變量的作用: 存儲(chǔ)值 代表值
// var 變量名 = 變量值;
// = 賦值 左邊變量名 右邊變量值
// var 關(guān)鍵字 (關(guān)鍵字不可以作為變量名)
var a=123;
console.log(a); //--->"123" //輸出的是變量代表的值
var zhufeng=1;
var c=[1,3,zhufeng];
// []里面數(shù)字、字符串,若直接放字母會(huì)被視為變量
var s=(1,3,"zhufeng",4);
// 意思是重復(fù)給c賦值,最后賦給的是"zhufeng" --->"zhufeng"
console.log(c);
console.log(s);
var x=
console.log(x);
//只聲明不賦值 不知道什么類型 undefined 六、js中的數(shù)據(jù)類型 1、基本數(shù)據(jù)類型:
1)數(shù)字number
2)字符串string (js中不區(qū)分單雙引號(hào))
3)布爾boolean : true/false
4) null
5) undefined
2、引用數(shù)據(jù)類型:
對(duì)象object :Object Array RegExp String Boolean Date Math
函數(shù)function :var fn=function(){ }; 七、number 1、數(shù)字?jǐn)?shù)據(jù)類型: 數(shù)字(正數(shù) 負(fù)數(shù) 0 小數(shù)), NaN 。
=賦值
==比較 -->true/false
特殊:NaN==NaN -->false
2、isNaN( ); --true/false
作用:檢測(cè)一個(gè)值是不是有效數(shù)字
()里面放字符串 數(shù)組 ,不放{},{}比較特殊
如果要檢測(cè)對(duì)象是其他數(shù)據(jù)類型,會(huì)默認(rèn)先進(jìn)行Number轉(zhuǎn)換。
3、Number() 強(qiáng)制轉(zhuǎn)換
如果要轉(zhuǎn)換的對(duì)象是字符串,字符串中必須全部為數(shù)字,否則反返回NaN
4、parseInt()parseFloat() 非強(qiáng)制轉(zhuǎn)換
parseInt :從左到右依次查找 只要遇到一個(gè)字符不是數(shù)字,就停止查找
parseFloat:多識(shí)別一個(gè)點(diǎn),第二個(gè)點(diǎn)就不能識(shí)別了
特殊:parseInt:(".3") -->NaN
parseInt:(.3) -->0 八、Boolean 1、布爾類型 : true false
0 NaN "" null undefined 為false,其余都為true
!取反:先將這個(gè)值轉(zhuǎn)為布爾類型( Boolean()), 再取反
!! 相當(dāng)于直接轉(zhuǎn)化為布爾類型。等價(jià)于 Boolean() 九、對(duì)象 {} 1、對(duì)象:由多組屬性名和屬性名的鍵值對(duì)(key:value)組成,逗號(hào)隔開(kāi) var obj={name:"123456",age:8};var student={name:"dalyn",age:20,sex:"你猜",add:"北京"}; 2、對(duì)象的創(chuàng)建方式
var obj={name:"zhufengpeixun"}; //字面量創(chuàng)建方式
var obj1=new Object(); //實(shí)例創(chuàng)建方式 就是這樣的格式 記住
()里面可以放數(shù)字 會(huì)顯示在最后面
3、增加屬性名和屬性值
obj1.name="珠峰";
obj1["age"]="培訓(xùn)";
console.log(obj1);
4、修改屬性名對(duì)應(yīng)的屬性值
obj1.age=8;
console.log(obj1.age)
//獲取一組屬性名的屬性值
//輸出屬性名對(duì)應(yīng)的屬性值
5、刪除一組屬性
delete obj1.name; //真刪除
obj1.age=null; //假刪除
console.log(obj1);
// 對(duì)象 類 實(shí)例
// js中萬(wàn)物皆對(duì)象,而類是對(duì)象的細(xì)分,實(shí)例為類中一個(gè)具體的實(shí)例
//對(duì)象數(shù)據(jù)類型中,
// Object(對(duì)象類) Array(數(shù)組類) RegExp(正則類) String(字符串類) Boolean(布爾類) Date(時(shí)間類) Math(數(shù)學(xué)類) , 這些類中的實(shí)例是對(duì)象數(shù)據(jù)類型 (這些類不是,實(shí)例才是)。 十、數(shù)據(jù)類型之間的比較 // == 比較, 返回:true false //1、相同數(shù)據(jù)類型直接比較即可, 但是對(duì)象與對(duì)象比較永遠(yuǎn)是false// ^_^ //2、不同數(shù)據(jù)類型之間的比較 // 1)對(duì)象==字符串:對(duì)象轉(zhuǎn)化為字符串( 對(duì)象.toString() ),然后是字符串之間的比較// []=="" --->[].toString()運(yùn)算 ---> true // 特殊:[0.3]=="0.3" ---》true // [.3]==".3" ---》 false // [.3].tostring() -->"0.3" 然后 "0.3"==".3" 所以false // 2)對(duì)象==布爾 對(duì)象轉(zhuǎn)為字符串再轉(zhuǎn)為數(shù)字 布爾轉(zhuǎn)為數(shù)字 //Number("") ---> 0 //Number(false) ---> 0 //Number(ture) ---> 1// 3)對(duì)象==數(shù)字 對(duì)象轉(zhuǎn)為字符串再轉(zhuǎn)為數(shù)字// 4)布爾==字符串 布爾轉(zhuǎn)數(shù)字 字符串轉(zhuǎn)數(shù)字// 5)布爾==數(shù)字// 6)字符串==數(shù)字// 7)null==undefined ---》true // 8)null 或者 undefined與其他任何值比較都是false//3、=== 兩側(cè)數(shù)據(jù)類型必須相同 否則false // 嚴(yán)格比較 絕對(duì)比較 // null === undefined ---> false []=="" --->true![]=="" --->true 不同數(shù)據(jù)類型 先執(zhí)行! 再比較![]==[] --->true[]==[] -->false 十、檢測(cè)數(shù)據(jù)類型 // typeof 空格后面就是要檢測(cè)的值 檢測(cè)數(shù)據(jù)類型 //typeof 的返回值是字符串類型的,字符串里面有:number string boolean undefined object function 六種 //局限性:不能檢測(cè)對(duì)象數(shù)據(jù)類型下面具體的細(xì)分console.log(typeof 123);// 特殊:console.log(typeof null); //----> objectconsole.log(typeof typeof []) //--->string 有兩個(gè)或以上的typeof 都返回的是string //其他三種: constructorinstanceofObject.prototype.toString.call() 十、基本數(shù)據(jù)類型與引用數(shù)據(jù)類型的本質(zhì)區(qū)別 //基本數(shù)據(jù)類型:number string boolean null undefined // 引用數(shù)據(jù)類型:object : Object Array RegExp Date Math String Boolean // function : function(){}; // var num1=6;var num2=num1;num2++; // num2+=1 // num2=num2+1 console.log(num1);var obj1={name:"zhufeng"};var obj2=obj1;obj2.name="zhufengpeixun";console.log(obj1);// var num2=num1; 基本數(shù)據(jù)類型(數(shù)字 字符串 布爾 null undefined)操作的是一個(gè)值,等于把num1的值復(fù)制給了num2,改變num2 不會(huì)影響num1的值。// var obj2=obj1; 新建一個(gè)引用數(shù)據(jù)類型,會(huì)自動(dòng)創(chuàng)建一個(gè)虛擬空間,引用數(shù)據(jù)類型(對(duì)象 函數(shù))操作的是這個(gè)虛擬空間的地址,等于把obj1的空間地址給了obj2,改變obj2的name后,改變的實(shí)際上地址所對(duì)應(yīng)的空間內(nèi)容,此時(shí)obj1 obj2對(duì)應(yīng)的空間是同一個(gè)虛擬空間,故obj1的name也會(huì)改變
css引入方式:
1、行內(nèi)式
2、內(nèi)嵌式
3、外鏈?zhǔn)?link標(biāo)簽
4、導(dǎo)入式
js的引入方式:
1、行內(nèi)式
2、內(nèi)嵌式 script標(biāo)簽
3、外鏈?zhǔn)?script標(biāo)簽的src屬性,js文件的路徑
外鏈?zhǔn)絪cript標(biāo)簽里面不寫js代碼-->不執(zhí)行不報(bào)錯(cuò)
4、 相當(dāng)于導(dǎo)入式 document.write('<script src="js路徑"></script>') 二、js輸出方式 1、alert(); 在頁(yè)面中彈出一個(gè)層
// alert("hello");
2.console.log();
// 要輸出的內(nèi)容,逗號(hào)隔開(kāi) ("a","b","c")
// 里面放的都是字符串或者變量,帶引號(hào)的,只有純數(shù)字的時(shí)候可以省略引號(hào)//也可以放函數(shù)
// 一般用于調(diào)試,不會(huì)影響網(wǎng)頁(yè)中的內(nèi)容
3.document.write();
直接在頁(yè)面中顯示,不停的輸出
4、inner HTML/inner Text
動(dòng)態(tài)的向指定元素中添加內(nèi)容
5、console.dir
6.confirm
7.console.table 三、js組成
1、ECMAscript : ES5 ES6 規(guī)定了js中的命名規(guī)范、變量、數(shù)據(jù)類型、基本語(yǔ)法、操作語(yǔ)句
2、DOM : document object model 文檔對(duì)象模型
3、BOM : browser object model 瀏覽器對(duì)象模型
html css js:
先加載css文件(head里面,保證用戶體驗(yàn)) 再加載html代碼
js代碼通常放到body的最后面,js主要就是操作html元素的, 四、js命名規(guī)范
1、嚴(yán)格區(qū)分大小寫
2、駝峰命名法(匈牙利命名法)
1)首字母小寫,第二個(gè)有意義的單詞開(kāi)始首字母大寫 不能用拼音和中文
2)可以由 數(shù)字 字母 _ $ 組成
3)不能以數(shù)字開(kāi)頭,也不能全部為數(shù)字
3、避開(kāi)關(guān)鍵字 保留字(未來(lái)可能作為關(guān)鍵字的)
4、 五、js的變量 //變量:可變的量
// 變量的作用: 存儲(chǔ)值 代表值
// var 變量名 = 變量值;
// = 賦值 左邊變量名 右邊變量值
// var 關(guān)鍵字 (關(guān)鍵字不可以作為變量名)
var a=123;
console.log(a); //--->"123" //輸出的是變量代表的值
var zhufeng=1;
var c=[1,3,zhufeng];
// []里面數(shù)字、字符串,若直接放字母會(huì)被視為變量
var s=(1,3,"zhufeng",4);
// 意思是重復(fù)給c賦值,最后賦給的是"zhufeng" --->"zhufeng"
console.log(c);
console.log(s);
var x=
console.log(x);
//只聲明不賦值 不知道什么類型 undefined 六、js中的數(shù)據(jù)類型 1、基本數(shù)據(jù)類型:
1)數(shù)字number
2)字符串string (js中不區(qū)分單雙引號(hào))
3)布爾boolean : true/false
4) null
5) undefined
2、引用數(shù)據(jù)類型:
對(duì)象object :Object Array RegExp String Boolean Date Math
函數(shù)function :var fn=function(){ }; 七、number 1、數(shù)字?jǐn)?shù)據(jù)類型: 數(shù)字(正數(shù) 負(fù)數(shù) 0 小數(shù)), NaN 。
=賦值
==比較 -->true/false
特殊:NaN==NaN -->false
2、isNaN( ); --true/false
作用:檢測(cè)一個(gè)值是不是有效數(shù)字
()里面放字符串 數(shù)組 ,不放{},{}比較特殊
如果要檢測(cè)對(duì)象是其他數(shù)據(jù)類型,會(huì)默認(rèn)先進(jìn)行Number轉(zhuǎn)換。
3、Number() 強(qiáng)制轉(zhuǎn)換
如果要轉(zhuǎn)換的對(duì)象是字符串,字符串中必須全部為數(shù)字,否則反返回NaN
4、parseInt()parseFloat() 非強(qiáng)制轉(zhuǎn)換
parseInt :從左到右依次查找 只要遇到一個(gè)字符不是數(shù)字,就停止查找
parseFloat:多識(shí)別一個(gè)點(diǎn),第二個(gè)點(diǎn)就不能識(shí)別了
特殊:parseInt:(".3") -->NaN
parseInt:(.3) -->0 八、Boolean 1、布爾類型 : true false
0 NaN "" null undefined 為false,其余都為true
!取反:先將這個(gè)值轉(zhuǎn)為布爾類型( Boolean()), 再取反
!! 相當(dāng)于直接轉(zhuǎn)化為布爾類型。等價(jià)于 Boolean() 九、對(duì)象 {} 1、對(duì)象:由多組屬性名和屬性名的鍵值對(duì)(key:value)組成,逗號(hào)隔開(kāi) var obj={name:"123456",age:8};var student={name:"dalyn",age:20,sex:"你猜",add:"北京"}; 2、對(duì)象的創(chuàng)建方式
var obj={name:"zhufengpeixun"}; //字面量創(chuàng)建方式
var obj1=new Object(); //實(shí)例創(chuàng)建方式 就是這樣的格式 記住
()里面可以放數(shù)字 會(huì)顯示在最后面
3、增加屬性名和屬性值
obj1.name="珠峰";
obj1["age"]="培訓(xùn)";
console.log(obj1);
4、修改屬性名對(duì)應(yīng)的屬性值
obj1.age=8;
console.log(obj1.age)
//獲取一組屬性名的屬性值
//輸出屬性名對(duì)應(yīng)的屬性值
5、刪除一組屬性
delete obj1.name; //真刪除
obj1.age=null; //假刪除
console.log(obj1);
// 對(duì)象 類 實(shí)例
// js中萬(wàn)物皆對(duì)象,而類是對(duì)象的細(xì)分,實(shí)例為類中一個(gè)具體的實(shí)例
//對(duì)象數(shù)據(jù)類型中,
// Object(對(duì)象類) Array(數(shù)組類) RegExp(正則類) String(字符串類) Boolean(布爾類) Date(時(shí)間類) Math(數(shù)學(xué)類) , 這些類中的實(shí)例是對(duì)象數(shù)據(jù)類型 (這些類不是,實(shí)例才是)。 十、數(shù)據(jù)類型之間的比較 // == 比較, 返回:true false //1、相同數(shù)據(jù)類型直接比較即可, 但是對(duì)象與對(duì)象比較永遠(yuǎn)是false// ^_^ //2、不同數(shù)據(jù)類型之間的比較 // 1)對(duì)象==字符串:對(duì)象轉(zhuǎn)化為字符串( 對(duì)象.toString() ),然后是字符串之間的比較// []=="" --->[].toString()運(yùn)算 ---> true // 特殊:[0.3]=="0.3" ---》true // [.3]==".3" ---》 false // [.3].tostring() -->"0.3" 然后 "0.3"==".3" 所以false // 2)對(duì)象==布爾 對(duì)象轉(zhuǎn)為字符串再轉(zhuǎn)為數(shù)字 布爾轉(zhuǎn)為數(shù)字 //Number("") ---> 0 //Number(false) ---> 0 //Number(ture) ---> 1// 3)對(duì)象==數(shù)字 對(duì)象轉(zhuǎn)為字符串再轉(zhuǎn)為數(shù)字// 4)布爾==字符串 布爾轉(zhuǎn)數(shù)字 字符串轉(zhuǎn)數(shù)字// 5)布爾==數(shù)字// 6)字符串==數(shù)字// 7)null==undefined ---》true // 8)null 或者 undefined與其他任何值比較都是false//3、=== 兩側(cè)數(shù)據(jù)類型必須相同 否則false // 嚴(yán)格比較 絕對(duì)比較 // null === undefined ---> false []=="" --->true![]=="" --->true 不同數(shù)據(jù)類型 先執(zhí)行! 再比較![]==[] --->true[]==[] -->false 十、檢測(cè)數(shù)據(jù)類型 // typeof 空格后面就是要檢測(cè)的值 檢測(cè)數(shù)據(jù)類型 //typeof 的返回值是字符串類型的,字符串里面有:number string boolean undefined object function 六種 //局限性:不能檢測(cè)對(duì)象數(shù)據(jù)類型下面具體的細(xì)分console.log(typeof 123);// 特殊:console.log(typeof null); //----> objectconsole.log(typeof typeof []) //--->string 有兩個(gè)或以上的typeof 都返回的是string //其他三種: constructorinstanceofObject.prototype.toString.call() 十、基本數(shù)據(jù)類型與引用數(shù)據(jù)類型的本質(zhì)區(qū)別 //基本數(shù)據(jù)類型:number string boolean null undefined // 引用數(shù)據(jù)類型:object : Object Array RegExp Date Math String Boolean // function : function(){}; // var num1=6;var num2=num1;num2++; // num2+=1 // num2=num2+1 console.log(num1);var obj1={name:"zhufeng"};var obj2=obj1;obj2.name="zhufengpeixun";console.log(obj1);// var num2=num1; 基本數(shù)據(jù)類型(數(shù)字 字符串 布爾 null undefined)操作的是一個(gè)值,等于把num1的值復(fù)制給了num2,改變num2 不會(huì)影響num1的值。// var obj2=obj1; 新建一個(gè)引用數(shù)據(jù)類型,會(huì)自動(dòng)創(chuàng)建一個(gè)虛擬空間,引用數(shù)據(jù)類型(對(duì)象 函數(shù))操作的是這個(gè)虛擬空間的地址,等于把obj1的空間地址給了obj2,改變obj2的name后,改變的實(shí)際上地址所對(duì)應(yīng)的空間內(nèi)容,此時(shí)obj1 obj2對(duì)應(yīng)的空間是同一個(gè)虛擬空間,故obj1的name也會(huì)改變
?
? ?轉(zhuǎn)載于:https://www.cnblogs.com/dalyn/p/7269689.html
總結(jié)
- 上一篇: c#用webkit内核支持html5
- 下一篇: lintcode-167-链表求和