1.组成部分####
- DOM(Document Object Model ):文档对象模型;DOM树,本身为我们操作页面元素提供了一套方法(API)。
- BOM(Browser Object Model):浏览器对象模型 核心对象(window loacation )。
- ECMAScript:规定js的核心语法,js语句,关键字,保留字
2.两种数据类型####
- 基本数据类型(简单数据类型):
string 字符串类型
number 数值
boolean 布尔类型(true | false)
undefined 未定义
null 空(对象) - 复杂数据类型(复合数据类型):
Object 对象类型
Array 数组类型
Funcation 函数类型
Date 日期类型
Math 对象
String 对象
Number 对象
Boolean 对象...
3.赋值、等于和全等说明####
赋值(=):把一个变量赋上具体的数据;
等于(==):比较的时候只判断数值是否是相等的;
全等(===):比较的时候不仅要比较数据还需要比较类型;
不等于(!=)
不全等于(!==)
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类型
区别:值类型存储的是具体的值,引用类型存储的是指向具体的地址(引用);
//值类型的数据
var str = "喜洋洋"; //string
var num=23; //number
//引用类型的数据
var person= {
name:"老王",
age:38,
dog:dog
};
var dog = {
name:"阿黄",
color:"黄色"
};
var arr=[1,2,3,4,5];
- 值类型和引用类型的赋值
①值类型赋值:
把右边变量存储存储的值(具体的数据)复制一份给左边的变量
②引用类型赋值:
把右边变量存储存储的值(指向具体数据的地址)复制一份给左边的变量
区别:
值类型的赋值是简单数据的复制,他们保存在相对独立的空间中,彼此不会影响,引用类型赋值修改了某个对象的属性,对另外一个对象的属性会有影响;
值类型赋值:
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); //'张全蛋'
- 值类型和引用类型在函数中的使用
函数里面的相关术语
实参(实际参数):
形参(形式参数):占位的变量,没有调用函数的时候形参是没有值
函数的调用:默认会把实参的值赋值给形参
区别:值类型作为函数的参数,实参和形参他们的数据是相互独立的。引用类型作为函数的参数,形参和实参共享同一份数据,修改其中的某个对象对另外一个对象也会有影响
//01 值类型作为函数的参数传递
var number = 22;
function funcName(n) {
//n = number; 内部默认的实现
n = 11;
console.log(n);
}
funcName(number); //11
console.log(number); //22(未修改number的值)
//02 引用类型作为函数的参数传递
对象替换了形参,对实现没有影响:
var obj = {name:"小月"};
function funcName(param) {
param = {//此行参数重新赋值,并非修改
name:"张明明"
};
console.log(param.name);
}
funcName(obj); //张明明
console.log(obj.name); //''小月''
修改了形参,同时对实参也有影响:
var obj = {name:"小月"};
function funcName(param) {
param .name=''哈哈哈''//此行修改了参数
console.log(param.name);
}
funcName(obj); //哈哈哈
console.log(obj.name); //''哈哈哈''
暂时就先写这么多,后续慢慢更新,希望大家喜欢,不足之处欢迎指正,O(∩_∩)O谢谢!