JavaScript的半程复习

1.js早期是用来完成在本地的表单验证

2.js的组成

核心:ECMAS script5
DOM:document object model
BOM:browse object model

3.js的使用

1.内部标签<script></script>
2.外部引入js为后缀的文件 <script src="" >再写在这个标签里的js内容会被忽略</script>

4.js的注释

单行注释://
多行注释:/**/

5.关键字和保留字

6.变量

var
1.变量声明能够被提升
2.变量可以重复使用
3.没有局部作用域
##用var声明的被声明在函数里的是该函数的局部变量
var a;//声明但不赋值
var a=10;//声明并赋值
b=10;//
var a=10,b=20,c=30;
let
1.变量声明不能提升
2.在同一作用域里不能重复声明
3.局部变量

const
1.变量声明不能提升
2.在同一作用域里不能重复声明
3.如果声明的是常量,则内容不能被修改
如果声明的是引用数据类型,地址不变,内容还是能够被修改的

7.数据类型
1.五种基本数据类型

number数字
	进制数:10进制 16进制 8进制
	浮点数
	不是数 NaN ——>isNaN 判断一个数是不是不是数
	无穷 infinity ——>isInfinite 判断一个数是不是属于数字范围/是不是不是无穷
boolean布尔
	true/false
string字符串
	用引号括起来
null 空引用
	指向的是一个空地址
undefined 未定义
	1.声明但未赋值
	2.声明为undefined的变量
	3.未被声明并赋值的变量

2.引用数据类型
object
3.检测数据类型 typeof
返回值有 number undefined object function string

##null值的返回类型是object

8.值传递和引用传递
1.值传递是传递属性值,将属性值复制赋值,并不会影响属性值
2.引用传递的是传递地址,如果传递后有改动,原地址的存储空间也会被改变

9.操作符

1.算术操作符
+ +=
	a+=b —>a=a+b
	
	1.如果都是number 直接相加
	2.如果是其他类型但不是string和object类型则转成成number类型相加
	3.都是字符串直接拼接,或者转换成字符串后拼接
	4.object会默认使用toString进行转换
- -=
* *=
/ /=
% %=

2.比较操作符

<
>
==
	1.转化成number类型比较
	2.字符串比较ASCII码

<=
>=
===全等 只比较不转换 数据类型和值都比较

3.三目运算符
判断语句?true:false

4.一元运算符

+ 正值  +a(转换number类型)
- 负值  -(-a)转换number类型
++自增
在前先自增在操作 在后先操作后自增
-- 自减
在前先自减在操作 在后先操作后自减

5.逻辑运算符

逻辑与&& 同真才真 有假则假
如果第一个值为""/0/false/null/undefined/NaN 则输出第一个操作数
如果第一个值为其他,则输出第二个操作符
逻辑或 || 同假才假 有真则真
如果第一个值为""/0/false/null/undefined/NaN 则输出第二个操作数
如果第一个值为其他,则输出第一个操作符
逻辑非 !转换成boolean值后 取反

10.类型转换
转换成number
1.+a
2.-(-a)
3.Number()

null   // 0
	undefined   //NaN
	ture   // 1
	false   // 0
	12   //12
	12.3   //12.3
	"12.3"   //12.3
	"1+2.3"   //NaN
	"+12.3"   //12.3
	"123ab"   //NaN
	"0xa"   //10
	"010"   //10
	""   //NaN

4.parseInt()

null   // NaN
	undefined   //NaN
	ture   // NaN
	false   // NaN
	12   //12
	12.3   //12
	"12.3"   //12
	"1+2.3"   //1
	"+12.3"   //12
	"123ab"   //123
	"0xa"   //10
	"010"   //10
	""   //NaN

5.parseFloat()

null   // NaN
	undefined   //NaN
	ture   // NaN
	false   // NaN
	12   //12
	12.3   //12.3
	"12.3"   //12.3
	"1+2.3"   //1
	"+12.3"   //12.3
	"123ab"   //123
	"0xa"   //0
	"010"   //10
	""   //NaN

转换成string
toString()
null和undefined不能调用
String()转化函数
“”+其他类型
转换成Boolean
Boolean()
false:0/null/undefined/""/NaN
!!a 两次取反就是转化数据类型

11.流程控制语句
分支语句

if else
switch case break

循环语句

for(初始化; 结束判定条件; 迭代)
{
                循环体
            }

初始化;
while(结束判定条件) {
           循环体;
            迭代

初始化;
do {
                循环体;
                迭代
}while(结束判定条件)

for-in
for(var key in arr/obj) {
      console.log(arr/obj.key);
      console.log(arr/obj[key]);
            }

12.对象object
1.创建
对象字面量
var obj={}
构造函数
var obj=new Object()
2.访问
点访问 obj.name
中括号 obj[frist name] 变量或者复杂的标识符
3.删除
delete obj.name
4.检测属性
in 检测属性是不是当前对象的私有属性或继承属性
hasOwnProperty()测试属性是不是当前对象的私有属性
propertyisEnuerable()测试当前属性是否是私有属性并且能被枚举
5.默认属性和方法
constructor
toString()
valueOf()
6.对象序列化
JSON.parse:将json字符串转为对象序列(在一个新的地址里了)
JSON.stringify:将对象序列转换成json字符串
7.构造函数和原型对象
#每一个构造函数都有一个原型函数
每一个原型函数都有一个constructor
静态方法/属性:
Object.assign(a,b)将b对象合并到a对象中
Object.keys() 当前对象的所有属性名所组成的数组
Object.values() 当前对象的所有属性值所组成的数组
Object.defineProperty()自定属性
//基础属性描述 value;writrable;enumerable;configurable
//存取操作符:set:function(){} get:function(){}
非静态方法:
toString()
valueOf()
hasOwnProperty()
13.函数function
1.创建
函数声明 function say(){}
函数字面量 var say= function say(){}
匿名函数 (function(){})立即调用
2.调用
函数名()
new 函数名()
函数名.call()
函数名.apply()
3.参数
形式参数
实际参数
#js中实际参数和形式参数可以个数不一样 类型不一样
4.函数的内部属性
argumens 类数组对象用来存储拥有当前arguments的函数的实参
arguments有callee 和length两个属性
callee在函数内部指向当前函数
length函数参数的个数
this 是函数赖以生存的环境变量
#this什么时候确定 拥有当前this的函数被调用的时候
#this指向谁 谁调用拥有当前this的函数 this就指向谁
形参也是函数的内部函数
5.函数的属性和方法
length 表示函数希望接收到参数个数
apply 改变环境变量的指向 无参数时调用函数
call改变环境变量的指向 无参数时调用函数
6.函数的应用
作为返回值运用
作为参数运用

14.数组
1.创建
数组字面量
var arr=[]
构造函数
var arr= new Array()
如果只有一个参数且为number类型//创建该number长度的数组
如果有好几个参数//则创建包含这些参数的数组
2.访问
数组名[索引]
当索引<当前数组的长度 则访问到数组索引-1的数组元素
当索引>当前数组长度 则添加数组长度到索引-1的长度
3.检测数组
Array.isArray(数组名)检测当前某个值是不是数组类型
补:
Array.from()将类数组对象(具有length属性并且属性名为number或者内容为number的字符串)转换成数组
Array.of()将当前参数当作数组元素创建该数值(创建数组)
4.数组序列化
运用toString把数组元素用字符串形式返回数组项
join() 改变数字元素之间的间隔符号
2.添加或删除
栈:
pop() 删除数组的最后一项 无参数 返回值是删除的数组元素
push() 添加参数在数组最后,参数是想添加的元素 返回值是数组添加元素的长度
队列
shift()删除数组的第一项 无参数 返回值是删除的数组元素
unshift() 添加参数在数组开头 参数是想添加的元素 返回值是数组添加后的长度
3.切换
reverse 将数组反转顺序 返回值是反转后的数组
sort()
1.无参数时 默认将数组toString转换成字符串后输出
2.自定义排序 可以调用 回调函数
如果是正数则将第一个参数往后移 反之、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值