JavaScript知識盲區整理
- script標簽用于引入外部js的注意點
- JS中嚴格區分大小寫,并且每條陳述句結尾的分號如果不加,瀏覽器會自動加,這樣會銷毀瀏覽器資源,還容易把分號加錯位置
- 在字串中我們可以使用\作為轉義字符
- typeof 用來檢查變數型別
- Number.MAX_VALUE 和 Number.MIN_VALUE獲取最大值和最小值,如果自己寫的超過最值范圍,會回傳Infinity
- 當宣告一個變數但是不給其賦值時,會回傳一個undefined
- 強制型別轉換
- document.write(): 向Body標簽體中寫入資料
- 任何值和字串相加都會變成字串
- 任何值做- * /運算時都會自動轉換為Number型別
- 在網頁中使用Unicode編碼
- JS物件
- 使用[]方式來設定屬性名
- JS物件的屬性值可以是任意的資料型別
- in運算子---檢查物件中是否含有指定屬性
- JS中的物件是參考資料型別,保存在堆上,而基本資料型別存盤在堆疊上
- 使用物件字面量{}來創建物件
- 使用物件字面量創建物件的時候可以同時指定物件的屬性
- JS函式--函式也是一個物件
- 使用函式宣告來創建一個函式物件
- 使用函式運算式來創建一個函式
- 函式形參相關注意點
- 函式實參可以是一個物件,JS函式也是一個物件,也可以作為函式實參傳遞
- 函式回傳值可以是任意資料,可以是一個物件===》包括函式物件
- 立即執行函式
- 物件的屬性值如果是一個方法,那么稱這個屬性為方法
- for.....in陳述句列舉物件中的屬性
- 作用域
- 全域作用域
- 全域物件window,全域作用域中所有變數都是其屬性,所有函式都是其方法
- var關鍵字宣告的變數會在所有代碼執行之前被宣告
- 函式宣告提前
- 函式作用域
- 在函式中,不使用var宣告的變數會變成全域變數
- this
- 使用工廠方法創建物件
- 建構式
- 可以使用instanceof檢查一個物件是否是一個類的實體
- this的三種情況
- 原型物件
- tostring---類似java,可以重寫
- 垃圾回收
- 陣列(Array)----陣列也是一個物件
- 字面量[]創建陣列時可以同時指定元素
- 建構式創建陣列時也可以指定元素
- 陣列里面的元素可以是任意資料型別
- 陣列物件的foreach方法---需要一個函式作為引數
- slice和splice方法
- concat方法
- join方法
- reverse方法
- sort方法
- 函式物件的call和apply方法----執行函式,修改函式執行時的this指向的物件
- this的四種情況
- arguments,即使不定義形參,也可以通過arguments獲取到形參
- 包裝類----決議器臨時轉換作用
- 正則運算式
- 字面量創建正則運算式
- JS教程
script標簽用于引入外部js的注意點
- 當script標簽用于引入外部js檔案時,就不能在標簽體內部撰寫代碼了,即使撰寫了瀏覽器也不會執行,
- 推薦使用引入外部js的方式來撰寫js代碼
<script type="text/javascript" src="temp.js"></script>

JS中嚴格區分大小寫,并且每條陳述句結尾的分號如果不加,瀏覽器會自動加,這樣會銷毀瀏覽器資源,還容易把分號加錯位置
在字串中我們可以使用\作為轉義字符
/*
在字串中我們可以使用\作為轉義字符
當表示一些特殊符號時可以使用\進行轉義
\" 表示 "
\n 表示換行
\t 表示制表符
\\ 表示\
*/
var str="你好\"大忽悠\"";
typeof 用來檢查變數型別
var a=123;
var b="大忽悠";
alert(typeof a);
alert(typeof b);


Number.MAX_VALUE 和 Number.MIN_VALUE獲取最大值和最小值,如果自己寫的超過最值范圍,會回傳Infinity
alert(Number.MAX_VALUE);
alert(Number.MIN_VALUE);
當宣告一個變數但是不給其賦值時,會回傳一個undefined
強制型別轉換


js的強制型別轉換
document.write(): 向Body標簽體中寫入資料
任何值和字串相加都會變成字串

本質是呼叫String()函式
任何值做- * /運算時都會自動轉換為Number型別

在任何資料型別前使用+和-都可以隱式將其轉換為Number型別
例如: 1 + +“2” +3=6
1+ “2”+3=“123”
在網頁中使用Unicode編碼
&#編碼; ==>這里的編碼需要的是10進制,unicode是十六進制
JS物件
//創建物件
var obj=new dhy();
//增加屬性
obj.name="大忽悠";
obj.age=18;
// 修改物件的屬性
obj.name="小朋友";
//洗掉物件屬性
delete obj.name;
使用[]方式來設定屬性名

var obj=new dhy();
obj["name"]="大忽悠";
var chose="name";
alert(obj[chose]);
JS物件的屬性值可以是任意的資料型別
in運算子—檢查物件中是否含有指定屬性

JS中的物件是參考資料型別,保存在堆上,而基本資料型別存盤在堆疊上


使用物件字面量{}來創建物件

{}和new的方式,本質上是一樣的
使用物件字面量創建物件的時候可以同時指定物件的屬性



var obj={
name:"大忽悠",
age:18,
"hobby":健身,//屬性名可以加"",也可以不加
test: {name:123} //屬性值是一個物件
};
JS函式–函式也是一個物件

<script type="text/javascript">
//創建一個函式物件
//將需要封裝的代碼以字串的形式傳遞給建構式
var func=new Function("alert(typeof func);");
//封裝到函式中的代碼不會立刻執行,函式中的代碼會在函式呼叫的時候執行
//呼叫語法:函式物件()
func();
//查看func的型別
alert(typeof func);
</script>

使用函式宣告來創建一個函式物件

function f1(){
alert("大忽悠");
}
//呼叫函式
f1();
使用函式運算式來創建一個函式

var f1=function (){
alert("大忽悠");
}
//呼叫匿名函式
f1();
創建一個匿名函式,將這個匿名函式物件賦值給一個變數
函式形參相關注意點

函式實參可以是一個物件,JS函式也是一個物件,也可以作為函式實參傳遞
函式回傳值可以是任意資料,可以是一個物件===》包括函式物件
立即執行函式

物件的屬性值如果是一個方法,那么稱這個屬性為方法


for…in陳述句列舉物件中的屬性


var peo={
name:"大忽悠",
age:18
}
for( var attr in peo)
{
document.write(peo[attr]);
}
[]才可以傳遞變數,.不行

作用域
全域作用域
全域物件window,全域作用域中所有變數都是其屬性,所有函式都是其方法


var關鍵字宣告的變數會在所有代碼執行之前被宣告

函式宣告提前

f1();//沒得問題
//函式宣告形式
function f1()
{
}
f2();//錯誤
//函式運算式形式,即匿名函式
var f2=function ()
{
}
函式作用域


在函式中,不使用var宣告的變數會變成全域變數

d=100;
alert(d);

this

window是一個全域物件,其實就是相當于那個物件呼叫這個函式,那么這個函式里面的隱式引數this就是當前呼叫這個函式的物件
使用工廠方法創建物件
var CreatePeo=function(name,age){
var obj={
name:name,
age:age
};
return obj;
};
var p1=CreatePeo("大忽悠1",18);
var p2=CreatePeo("大忽悠2",19);
var p3=CreatePeo("大忽悠3",20);
建構式

function People()
{
name="大忽悠";//全域變數name
this.name="大忽悠";//當前新建物件的屬性name
}
var people=new People();
可以使用instanceof檢查一個物件是否是一個類的實體


this的三種情況

原型物件
對于通過建構式創建的物件而言,每一次創建,里面的所有變數和物件(函式物件)都會重新創建一遍,那么這樣會很浪費空間
通過將該類構造方法下創建的所有物件的公共的屬性和方法,統一添加到原型物件中,完成對資源的節約



function People()
{
this.name="大忽悠";
}
//設定原型物件的屬性
People.prototype.age=18;
var p=new People();
alert(p.age);




tostring—類似java,可以重寫
如果只重寫當前物件的tostring方法,那么只對當前物件起效

如果修改當前原型的tostring,那么對當前建構式創建的物件都有效

垃圾回收

陣列(Array)----陣列也是一個物件

使用typeof檢查一個陣列,會回傳object
//創建陣列物件
var arr=new Array();
//向陣列中添加元素
arr[0]=123;
//獲取陣列中的元素
alert(arr[0]);
//獲取陣列長度
var len=arr.length;


字面量[]創建陣列時可以同時指定元素

建構式創建陣列時也可以指定元素


陣列里面的元素可以是任意資料型別


陣列物件的foreach方法—需要一個函式作為引數


slice和splice方法




第三個引數開始的新元素,用來替換洗掉掉的元素
concat方法

join方法

reverse方法

sort方法



函式物件的call和apply方法----執行函式,修改函式執行時的this指向的物件


this的四種情況

arguments,即使不定義形參,也可以通過arguments獲取到形參


包裝類----決議器臨時轉換作用


正則運算式


字面量創建正則運算式

JS教程
教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/295435.html
標籤:其他
