# 一 ,javascript的组成
ECMAscript + BOM + DOM
二,js的基本数据类型
-
布尔值(Boolean),有 2 个值分别是:true 和 false
-
null , 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或变体完全不同
-
undefined ,和 null 一样是一个特殊的关键字,undefined 表示变量未赋值时的属性
-
数字(Number),整数或浮点数,例如: 42 或者 3.14159
-
任意精度的整数 (BigInt) ,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制
-
字符串(String),字符串是一串表示文本值的字符序列,例如:”Howdy”
-
代表(Symbol)( 在 ECMAScript 6 中新添加的类型).。一种实例是唯一且不可改变的数据类型
引用数据类型(Object)又分为Array – 数组对象、RegExp – 正则对象、Date – 日期对象、Math – 数学函数、Function – 函数对象等常见类型。
基本数据类型与引用数据类型
基本数据类型:在存储时变量存储的是值本身:string,number,undefined,null,Boolean
引用数据类型:在存储变量时存储的是地址:Object ,Array,date
1.字符串的转义符
字符串的操作方法
根据位置返回字符
3.检测变量的数据类型:typeof
2.数据类型的转换
三, 运算符
1.三元表达式
四,语句循环
1.switch语句
语法规范
注:如果不添加break 则不会退出switch,而是执行下一个case
switch..case语句通常处理case为比较确定值的情况,而if..else.….语句更加灵活,常用于范围判断(大于、等于某个范围)
2.for循环
循环的目的:重复执行某些代码
for循环的执行过程
for(i=0; i <= 100; i++){ console.log('Hello World') }
- i=0 ;
- i<=100;
- log;
- i++
- i<=100;
- log;
- i++
- ...
3.while循环
4.do while循环
5.循环的关键字
continue
跳出本次循环,进行下一次循环
break关键字
退出整个循环
五,引用型数据类型
1.数组
数组的创建
数字内可以存放任意类型的数据
创建数组的方法:
1.new创建数组
2.字面量创建数组
var 数组名 = [1,2,3,4]
获取数组内的元素
1.索引 arr[3]
检测是否为数组
instanceof
var arr= [] console.log(arr instanceof Array);
是数组返回true 不是返回false
Array.isArray()
var arr= [] console.log(Array.isArray(arr));
添加删除数组
数组的排序
sort排序的注意事项:
arr.sort(function(a,b){
return a-b
})
console.log(arr);
数组的索引
index of 返回查到第一个元素的索引值
数组转换为字符串
六,函数
封装可以重复执行的代码块
return
只返回一个值 终止代码执行 如果有多个值 返回最后一个值 如果没有return 返回undefined
arguments
作用域
1.函数内部直接赋值没有声明的变量也是全局变量
2.
七,js的预解析
js的引擎运行js: 1.预解析(js会把所有声明和function提前到当前作用域的最前面) 2.执行代码
八,对象object
本身是一组无序的属性跟方法的集合
1.创建对象的三种方式
1.字面量方法
var obj = {
name: 'iPhone18',
price:8888,
call:function(){
console.log('我可以打电话');
}
}
2.new Object
3.构造函数
- 构造函数名字的首字母要大写
- 构造函数不需要return 就可以返回结果
- 调用构造函数时,必须使用new
- 属性和方法前面必须添加this
基本写法
function Obj(name,age,sing){
this.name = name;
this.age = age;
this.sing = function(){
}
}
new Obj()
new 关键字的执行过程:
- 在内存中创建了一个空的对象
- this指向刚才创建的空对象
- 执行构造函数里面的代码,给空对象添加属性和方法
- 返回这个对象
2.for in 遍历对象
var obj = {
name: 'iPhone18',
price:8888,
call:function(){
console.log('我可以打电话');
}
}
for(var k in obj){
console.log(k + '=' + obj[k]);
}
3.js内置对象时间的格式化
九,DOM
1.事件
2.节点
一般节点至少拥有nodeType(节点类型),nodeName(节点名称),nodeValue(节点值) 三个属性