07-javaScript基礎
? 函數其他部分
-
arguments [掌握]
-
arguments 作用?
解決當函數的形參個數不確定的時候,通過arguments獲取實參的值
-
如何使用arguments 獲取用戶傳遞實參的值?
arguments 在函數中就是用來保存實參信息的偽數組 (可以按照數組的方式去遍歷, 但是不能使用數組的方法)? 通過遍歷arguments 就可以得到實參的值
-
-
arguments總結
- 當函數中參數個數不確定時候, 可以通過arguments獲取實參的值
- 當函數的參數個數以確定的時候,也可以通過arguments獲取實參的值
- 如果函數的參數確定,那么就不推薦使用arguments獲取實參的值
-
課堂案例
課堂案例:1. 求任意個數中的最大值2. 求任意個數的和
-
匿名函數 自調用函數 (了解)
-
匿名函數
匿名函數: 沒有名字的函數
-
自調用函數
自調用函數: 函數自己調用自己匿名函數 ---> 匿名函數可以自己調用自己 有名字的函數 ----> 有名字的函數也可以自己調用自己//自調用函數: 函數自己調用自己// (function fn() {// alert(1);// })();//自調用函數// (function() {// alert(1);// })();總結:自調用函數,其實就是函數調用的另外一種寫法
-
-
函數作用域及作用域鏈 [了解]
-
作用域
-
全局作用域
在函數外部的作用域, 在全局作用域中定義的變量,稱為全局變量
-
-
- 局部作用域```js函數內部形成的作用域, 在局部作用域中定義的變量,稱為局部變量```
- 全局變量和局部變量的區別1. 局部變量 只能在當前自己的局部作用域中使用,不能在全局作用域中使用(私人物品)2. 全局變量可以在任何作用域中使用(公共物品)
-
作用域鏈
作用域鏈: 多個作用域之間形成的一個鏈狀結構
- 作用域鏈有什么作用
var a = 1;
function fn1(){var a = 2;function fn2(){console.log(a); //a的值 }fn2()
}
fn1();
-
代碼預解析 [了解]
-
代碼預解析
代碼在程序執行之前,做的一個準備工作 (生命周期)
-
代碼預解析的準備工作有哪些?
-
變量提升
遇到變量的時候, 那么會將變量的聲明提升到當前作用域的開始位置, 不包括變量的賦值
-
函數提升
遇到函數的時候, 那么程序會將函數的聲明提升到當前作用域的開始位置,不包括函數的調用
-
-
01.知識點-對象基本介紹
-
為什么要學習對象?
為了在保存數據的是,要做到 一一對應對象的本質就是一個容器.學習容器的套路: 如何定義, 如何賦值, 如何取值
-
學習對象的路徑[重點]
- 必須掌握4種創建對象的方式
- 必須掌握如何給對象賦值
- 必須掌握如何從對象中取值
//學習對象的好處:/*1.在保存數據的時候左到一一對應2.對象的本質就是一個容器學習容器的套路: 如何定義,賦值,取值*/ // 創建對象的方式:// 一、屬性:就是對象中的一個變量,變量中保存的是用來描述對象基本特征的值// 二、方法:本質上就是一個匿名函數,將對象中的匿名函數稱為方法//1. // 對象保存信息就是通過屬性和方法保存// 屬性保存特征,方法實現功能// var dhl = {// // 屬性:// userName : '王宇',// userAge : 18,// //方法:// jiangKe : function(){// console.log('聽課中。。。');// }// };// 如何給對象賦值// 1.在定義對象的時候直接賦值// var dhl = {// // 屬性:// userName : '王宇',// userAge : 18,// //方法:// jiangKe : function(){// alerta('聽課中。。。');// }// };//(掌握) // 2.通過 (對象 . 自定義屬性名)(對象 . 方法名)賦值// var obj = {}; //自定義一個空對象// //通過點的方式給屬性賦值// obj.userName = '王宇';// obj.userHeight = 180;// //通過點的方式給方法賦值// obj.sahngKe = function(){// alert('聽課中....');// }// obj.run = function(){// alert('跑步....');// }// console.log(obj);s// // 3.通過 對象['自定義屬性(方法名)'] 賦值// 用[]自定義屬性名跟方法是記住,[]里的屬性需要用引號括起來,為了防止程序報錯// var obj = {};//自定義一個空對象// //添加屬性// obj['userName'] = '張三';// obj['age'] = 18;// //添加方法// obj['eat'] = function(){// alert('跑步.....');// }// console.log(obj);// 如何給對象取值:獲取屬性或方法//1. 通過 · 的方式獲取屬性和方法// var obj = {// uname : 'wangyu',// uage : 15,// uheight :180,// eat : function(){// alert('正在吃飯....');// },// run : function(){// alert('在跑步。。。。');// }// }// console.log(obj.uname);// obj.eat();//2.通過[]的方式獲取屬性和方法var obj = {uname : 'wangyu',uage : 15,uheight :180,eat : function(){alert('正在吃飯....');},run : function(){alert('在跑步。。。。');}}console.log(obj['uname']);console.log(obj['uage']);obj['run']();
-
對象的組成
-
包括屬性
屬性其實就是一個對象中的一個變量, 這個變量中保存的是用來描述對象基本特征的值
-
包括方法
方法本質上就是一個匿名函數, 將對象中的匿名函數稱為方法
-
總結: 如果要使用對象保存數據,那么對象中就應該有 屬性 或 方法
-
02.對象的使用
-
知識點-創建對象及賦值
創建對象:
-
通過字面量方式創建對象
var 自定義對象名稱 = {自定義屬性名 : 值,自定義函數名 : function() {} }
給對象賦值
-
直接創建對象并賦值(以鍵值對的形式)【優先掌握第一種方式】
var obj = {userName : 'dhl',eat : function() {alert('正在吃飯');}}
-
通過對象名的方式賦值 (掌握)
var obj = {}; //空對象//通過點的方式給屬性賦值obj.userName = '張三';obj.userHeight = 180;//通過點的方式設置方法obj.eat = function() {alert('正在吃飯');}obj.run = function() {alert('正在跑步');}console.log(obj);
-
通過對象[]方式賦值
- 切記,在[]進行自定義變量時,添加引號。
var obj = {}; //空對象//添加屬性obj['userName'] = '張三';//添加一個方法obj['eat'] = function() {alert('正在吃飯');}console.log(obj);
-
-
知識點-獲取對象中的值
? 對象.的方式
var obj = {uname : 'dhl',uage : 28,uheight: 180,eat : function() {alert('正在吃飯');},run : function() {alert('正在跑步');}}console.log(obj.uname); //方法: 函數 是用來調用執行的obj.eat();
? 對象[]的方式
var obj = {uname : 'dhl',uage : 28,uheight: 180,eat : function() {alert('正在吃飯');},run : function() {alert('正在跑步');}}console.log(obj['uname']);// 調用方法: 調用方法或函數記得加() obj['run']();
? 總結:
- 講了一種創建對象的方式(字面方式)
- 獲取 / 設置 對象值的方式 適用于 任何一種形式創建出來的對象
3.其他創建對象的方式
-
知識點-通過內置構造函數創建對象【創建單個對象】
語法: var 自定義對象名 = new Object();總結: 1. new 關鍵字: 就是通過調用構造函數創建對象的 2. Object()構造函數: 本質就是一個函數, 構造函數的作用就是用來創建對象的 3. new Object() 創建的對象 和 通過 {} 創建的對象是一會事兒把 通過 {} 創建的對象稱為是 通過 new Object() 創建對象的語法糖寫法
-
知識點-通過工廠方式創建對象【創建多個對象】
function people(userName, chenji) {var obj = new Object();obj.userName = userName;obj.score = chenji;return obj; } var xf = people('小飛', 100); var zb = people('志博', 90); console.log(xf, zb);
-
知識點-通過自定義構造函數創建對象【推薦寫法】
-
創建對象總結
4.今日內容小擴展
- 知識點-this關鍵字介紹
- 知識點-new關鍵字介紹
- 知識點-遍歷對象
- 知識點-instanceOf關鍵字介紹
- 知識點-簡單數據類型和復雜數據類型的區別
;
obj.score = chenji;
return obj;
}
var xf = people(‘小飛’, 100);
var zb = people(‘志博’, 90);
console.log(xf, zb);
- 知識點-通過自定義構造函數創建對象【推薦寫法】- **創建對象總結**## 4.今日內容小擴展- 知識點-this關鍵字介紹
- 知識點-new關鍵字介紹
- 知識點-遍歷對象
- 知識點-instanceOf關鍵字介紹
- 知識點-簡單數據類型和復雜數據類型的區別