1.組成部分####
- DOM(Document Object Model ):文檔對象模型;DOM樹,本身為我們操作頁面元素提供了一套方法(API)。
- BOM(Browser Object Model):瀏覽器對象模型 核心對象(window loacation )。
- ECMAScript:規(guī)定js的核心語法,js語句,關鍵字,保留字
2.兩種數(shù)據(jù)類型####
- 基本數(shù)據(jù)類型(簡單數(shù)據(jù)類型):
string 字符串類型
number 數(shù)值
boolean 布爾類型(true | false)
undefined 未定義
null 空(對象) - 復雜數(shù)據(jù)類型(復合數(shù)據(jù)類型):
Object 對象類型
Array 數(shù)組類型
Funcation 函數(shù)類型
Date 日期類型
Math 對象
String 對象
Number 對象
Boolean 對象...
3.賦值、等于和全等說明####
? ?賦值(=):把一個變量賦上具體的數(shù)據(jù);
? ?等于(==):比較的時候只判斷數(shù)值是否是相等的;
? ?全等(===):比較的時候不僅要比較數(shù)據(jù)還需要比較類型;
? ?不等于(!=)
? ?不全等于(!==)
var str1 = "讓我掉下眼淚的,不止你的溫柔"; //string類型
var str2 = "讓我掉下眼淚的,不止你的溫柔"; //string類型
console.log(str1 == str2); //true
var test1 = 1; //number類型
var test2 = "1"; //string類型
console.log(test1 == test2); //true
console.log(test1 === test2); //false
4.關系運算符####
? ? 返回值:布爾類型,要么是true要么是false,一般用于判斷語句中.
? ? 大于 >
? ?小于 <
? ?大于等于 >=
? ?小于等于 <=
5.邏輯運算符####
- 邏輯非(!) 取反
- 邏輯或(||)
語法:表達式1 || 表達式2
結果: 判斷表達式1,如果表達式1為真,那么就返回表達式1,如果表達式1的值為假,那么就返回表達式2;
var resultA = 3 || 2; //3
var resultB = 0 || 2; //2
var resultC = 5 || 0; //5
var resultD = 0 || 0; //0
- 邏輯與(&&)
語法:表達式1 && 表達式2
結果: 如果表達式1為真,返回表達式2,如果表達式1為假,返回表達式1
var resultA = 3 && 2; //2
var resultB = 0 && 2; //0
var resultC = 5 && 0; //0
6.值類型和引用類型####
- 值類型:
string、number、 boolean、undefined - 引用類型:
object類型
區(qū)別:值類型存儲的是具體的值,引用類型存儲的是指向具體的地址(引用);
//值類型的數(shù)據(jù)
var str = "喜洋洋"; //string
var num=23; //number
//引用類型的數(shù)據(jù)
var person= {
name:"老王",
age:38,
dog:dog
};
var dog = {
name:"阿黃",
color:"黃色"
};
var arr=[1,2,3,4,5];
- 值類型和引用類型的賦值
①值類型賦值:
把右邊變量存儲存儲的值(具體的數(shù)據(jù))復制一份給左邊的變量
②引用類型賦值:
把右邊變量存儲存儲的值(指向具體數(shù)據(jù)的地址)復制一份給左邊的變量
區(qū)別:
值類型的賦值是簡單數(shù)據(jù)的復制,他們保存在相對獨立的空間中,彼此不會影響,引用類型賦值修改了某個對象的屬性,對另外一個對象的屬性會有影響;
值類型賦值:
var str1 = "我是MT";
var str2 = str1;
console.log(str1); //'我是MT'
console.log(str2); //'我是MT'
str1 = ''哈哈哈'';
console.log(str1); //'哈哈哈'
console.log(str2); //'我是MT'
引用類型賦值:
var person1 = {
name:"余小花"
}
var person2=person1;
console.log(person1.name); //'余小花'
console.log(person2.name); //'余小花'
person1.name=''張全蛋'';
console.log(person1.name); //'張全蛋'
console.log(person2.name); //'張全蛋'
- 值類型和引用類型在函數(shù)中的使用
函數(shù)里面的相關術語
實參(實際參數(shù)):
形參(形式參數(shù)):占位的變量,沒有調(diào)用函數(shù)的時候形參是沒有值
函數(shù)的調(diào)用:默認會把實參的值賦值給形參
區(qū)別:值類型作為函數(shù)的參數(shù),實參和形參他們的數(shù)據(jù)是相互獨立的。引用類型作為函數(shù)的參數(shù),形參和實參共享同一份數(shù)據(jù),修改其中的某個對象對另外一個對象也會有影響
//01 值類型作為函數(shù)的參數(shù)傳遞
var number = 22;
function funcName(n) {
//n = number; 內(nèi)部默認的實現(xiàn)
n = 11;
console.log(n);
}
funcName(number); //11
console.log(number); //22(未修改number的值)
//02 引用類型作為函數(shù)的參數(shù)傳遞
對象替換了形參,對實現(xiàn)沒有影響:
var obj = {name:"小月"};
function funcName(param) {
param = {//此行參數(shù)重新賦值,并非修改
name:"張明明"
};
console.log(param.name);
}
funcName(obj); //張明明
console.log(obj.name); //''小月''
修改了形參,同時對實參也有影響:
var obj = {name:"小月"};
function funcName(param) {
param .name=''哈哈哈''//此行修改了參數(shù)
console.log(param.name);
}
funcName(obj); //哈哈哈
console.log(obj.name); //''哈哈哈''
暫時就先寫這么多,后續(xù)慢慢更新,希望大家喜歡,不足之處歡迎指正,O(∩_∩)O謝謝!