1.組成部分####
- DOM(Document Object Model ):文檔對(duì)象模型辙纬;DOM樹(shù),本身為我們操作頁(yè)面元素提供了一套方法(API)吝秕。
- BOM(Browser Object Model):瀏覽器對(duì)象模型 核心對(duì)象(window loacation )迹卢。
- ECMAScript:規(guī)定js的核心語(yǔ)法,js語(yǔ)句,關(guān)鍵字,保留字
2.兩種數(shù)據(jù)類型####
- 基本數(shù)據(jù)類型(簡(jiǎn)單數(shù)據(jù)類型):
string 字符串類型
number 數(shù)值
boolean 布爾類型(true | false)
undefined 未定義
null 空(對(duì)象) - 復(fù)雜數(shù)據(jù)類型(復(fù)合數(shù)據(jù)類型):
Object 對(duì)象類型
Array 數(shù)組類型
Funcation 函數(shù)類型
Date 日期類型
Math 對(duì)象
String 對(duì)象
Number 對(duì)象
Boolean 對(duì)象...
3.賦值蝎毡、等于和全等說(shuō)明####
? ?賦值(=):把一個(gè)變量賦上具體的數(shù)據(jù);
? ?等于(==):比較的時(shí)候只判斷數(shù)值是否是相等的宵溅;
? ?全等(===):比較的時(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.關(guān)系運(yùn)算符####
? ? 返回值:布爾類型,要么是true要么是false,一般用于判斷語(yǔ)句中.
? ? 大于 >
? ?小于 <
? ?大于等于 >=
? ?小于等于 <=
5.邏輯運(yùn)算符####
- 邏輯非(!) 取反
- 邏輯或(||)
語(yǔ)法:表達(dá)式1 || 表達(dá)式2
結(jié)果: 判斷表達(dá)式1,如果表達(dá)式1為真,那么就返回表達(dá)式1,如果表達(dá)式1的值為假,那么就返回表達(dá)式2;
var resultA = 3 || 2; //3
var resultB = 0 || 2; //2
var resultC = 5 || 0; //5
var resultD = 0 || 0; //0
- 邏輯與(&&)
語(yǔ)法:表達(dá)式1 && 表達(dá)式2
結(jié)果: 如果表達(dá)式1為真,返回表達(dá)式2寿冕,如果表達(dá)式1為假,返回表達(dá)式1
var resultA = 3 && 2; //2
var resultB = 0 && 2; //0
var resultC = 5 && 0; //0
6.值類型和引用類型####
- 值類型:
string蕊程、number、 boolean驼唱、undefined - 引用類型:
object類型
區(qū)別:值類型存儲(chǔ)的是具體的值藻茂,引用類型存儲(chǔ)的是指向具體的地址(引用);
//值類型的數(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];
- 值類型和引用類型的賦值
①值類型賦值:
把右邊變量存儲(chǔ)存儲(chǔ)的值(具體的數(shù)據(jù))復(fù)制一份給左邊的變量
②引用類型賦值:
把右邊變量存儲(chǔ)存儲(chǔ)的值(指向具體數(shù)據(jù)的地址)復(fù)制一份給左邊的變量
區(qū)別:
值類型的賦值是簡(jiǎn)單數(shù)據(jù)的復(fù)制,他們保存在相對(duì)獨(dú)立的空間中,彼此不會(huì)影響玫恳,引用類型賦值修改了某個(gè)對(duì)象的屬性,對(duì)另外一個(gè)對(duì)象的屬性會(huì)有影響辨赐;
值類型賦值:
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ù)里面的相關(guān)術(shù)語(yǔ)
實(shí)參(實(shí)際參數(shù)):
形參(形式參數(shù)):占位的變量,沒(méi)有調(diào)用函數(shù)的時(shí)候形參是沒(méi)有值
函數(shù)的調(diào)用:默認(rèn)會(huì)把實(shí)參的值賦值給形參
區(qū)別:值類型作為函數(shù)的參數(shù),實(shí)參和形參他們的數(shù)據(jù)是相互獨(dú)立的惭婿。引用類型作為函數(shù)的參數(shù)不恭,形參和實(shí)參共享同一份數(shù)據(jù),修改其中的某個(gè)對(duì)象對(duì)另外一個(gè)對(duì)象也會(huì)有影響
//01 值類型作為函數(shù)的參數(shù)傳遞
var number = 22;
function funcName(n) {
//n = number; 內(nèi)部默認(rèn)的實(shí)現(xiàn)
n = 11;
console.log(n);
}
funcName(number); //11
console.log(number); //22(未修改number的值)
//02 引用類型作為函數(shù)的參數(shù)傳遞
對(duì)象替換了形參,對(duì)實(shí)現(xiàn)沒(méi)有影響:
var obj = {name:"小月"};
function funcName(param) {
param = {//此行參數(shù)重新賦值财饥,并非修改
name:"張明明"
};
console.log(param.name);
}
funcName(obj); //張明明
console.log(obj.name); //''小月''
修改了形參换吧,同時(shí)對(duì)實(shí)參也有影響:
var obj = {name:"小月"};
function funcName(param) {
param .name=''哈哈哈''//此行修改了參數(shù)
console.log(param.name);
}
funcName(obj); //哈哈哈
console.log(obj.name); //''哈哈哈''
暫時(shí)就先寫(xiě)這么多,后續(xù)慢慢更新钥星,希望大家喜歡沾瓦,不足之處歡迎指正,O(∩_∩)O謝謝谦炒!