JavaScript基础

一 数据类型

数据类型
五种常见的数据类型
字符串
string(显示网页文本,一切以单引号或者双引号引起来的内容)
数字
number(用于数学计算,一切数学中的数字)
有一个特殊的值NaN
在这里插入图片描述

布尔
Boolean(表示对立面, 只有两个值 (1)true 表示真(2)false表示假)

undefined(变量只声名,未赋值默认值undefined)

null(只能手动赋值为null,表示空值,定义了但是目前想不到要给什么值)

两种复杂的数据类型
数组
Array[元素1,元素2,元素3,… ](一个变量存储多个数据,有序存储)
对象
object{元素1,元素2,元素3,}(无序存储)

二 变量

变量的作用
在内存中存储数据
变量的语法
声名变量 var 变量名
变量赋值 变量名=值
变量取值 变量名
变量的注意点
作用域 变量起作用的范围
全局作用域 全局变量 函数外声名
局部作用域 局部变量 函数内声名
变量访问作用域链的规则 就近原则
预解析
变量提升
js将var 与function声名提前,赋值调用还是在原地
在这里插入图片描述

三 运算符 表达式

运算符与表达式
赋值运算符 = (将右边的数据 ,存入左边的变量中)
连接符 + (两边需要有一边是字符串)
算术运算符+ - * / % += -= *= /= %=
自增自减运算符 ++ –
关系运算符 > < >= <= ==(比较值) !=(比较值) =(比较值以及数据类型) !(比较值与数据类型)
逻辑运算符 && (一真则真 ) || (一假则假) !(取反)
表达式
1 运算符单独使用无意义 要与数字一起组成式子
2 只要是关系表达式 ,就一定有结果 要么打印 要么存入变量
3 关系表达式的结果一定是布尔类型 true(成立) false (不成立)

四 程序流程

程序流程控制
顺序结构
默认的顺序结构是代码从上往下依次执行
分支结构
if单分支 (一个条件判断)
if(条件判断表达式)
if-else双分支结构 (两个互斥条件)
if(条件判断表达式){成立时执行的代码}else{不成立时执行的代码}
if-lese-if-lese 多分支结构(多个条件)
只有当上面的代码都不成立时才会执行下一行代码判断
必须以if开头 中间的条件判断可以是多个 结尾的else可以省略,一般不省 会有逻辑漏洞
if(条件判断表达式){成立时执行的代码}else{不成立时执行的代码}
固定值匹配
switch-case (匹配值){
值1=匹配值 1需要执行的代码
break;
值2
=匹配值 2需要执行的代码
break;
default:
匹配值与case后面的值都不匹配,需要执行的代码
break;
}
注意点:
小括号匹配值 与 case的值 一定要是全等的关系
break关键字作用:
结束switch-case语句,如果忘记添加break关键字则会发生穿透效果
从上一个代码块,执行到下一个代码块。
三元表达式
功能与if-else相似 代码更简洁
表达式?代码1:代码2

循环结构

代码重复执行
适用于循环次数不固定
while(条件){
循环体代码 需要重复执行的代码

}

适用于循环次数不固定,至少执行一次
do{
循环体代码
}while(条件)

适用于循环次数固定
for(语句1,语句2,语句3){
循环体代码
}

在这里插入图片描述

五 数组

数组
数组的作用 一个变量可以存储多个数据
数组的三要素
元素 数组中存储的数据
下标 数组中元素的位置 (下标从零开始)
长度 数组中元素的数量 (最大下标等于数组名.length-1)
数组的语法
声名数组(常用) var arr=[元素1,元素2,元素3]
数组取值 数组名[下标]
特点:如果没有超过最大下标 获取数组元素
如果超过 最大下标,获取undefined
数组赋值 数组名[下标]=值
特点: 如果没有超过最大下标 修改数组元素
超过最大下标 动态添加元素
数组的长度
获取 数组名.length
设置 数组名.length=值 (特点:修改数组长度,数组元素也会变化)

扩展语法
	删除数组最后一个元素	数组名.length--
	获取数组最后一个元素	数组名[数组名.length-1]
	给数组后面添加元素		数组名[数组名.length] =值

数组遍历
固定的for循环结构
for(var i=0;i<数组名.length;i++){数组名[ i ] }

六 函数

函数

作用  将代码存入变量中 实现代码复用

函数语法 
	声名函数 代码存入函数 
				function(){函数体:一段代码}
				函数在声名的时候不会执行
	调用函数 执行函数体代码
				函数名()

函数参数
		作用 调用者传递数据给函数
		语法
				传  调用者 函数名(实参)
				收   函数    function	函数名(形参){函数体}
				本质是实参给形参赋值
注意点:
		实参给形参赋值时按照顺序意义赋值的
		实参数量可以和形参数量不一致,默认参数时undefined
		
函数的返回值
存在意义 函数特点 在函数外无法获取函数内部数据
作用  函数将数据传递给调用者
  语法 
  		传 函数   function(形参 ){函数体代码  return 值}
  		收 调用者  var res=函数名(形参)
  	注意点
  		如果一个函数没有return 函数的返回值时undefined
  		如果一个函数有return 但是return 没有值 函数的返回值也是undefined
  		return作用有两个 
  				1  返回值 
  				2  结束函数体代码执行
  		如果一个函数有return 且return 后面又值 则函数返回值 就是return后面的值

在这里插入图片描述

七 对象

对象的作用 一个变量可以存储多个数据
对象的存储是无序存储 属性名和属性值 一一对应(键值对)
对象语法
声明对象
声名空对象 var obj={}
对象初始化 var obj={属性名:属性值}
对象取值
点语法 对象名.属性名
字符串语法 对象名[‘属性名]
特点
如果有属性名则获取属性值
如果没有属性名 则获取undefined
对象赋值
点语法 对象名.属性名=值
字符串语法 对象名['属性名’]=值
特点
如果有属性名,则修改属性值
如果没有属性名,则动态属性
对象遍历
for(var key in 对象名){对象名[ key ]}
对象的遍历只能使用字符串语法

this关键字
谁调用这个方法,this就指向谁

new关键字作用原理
作用 : new 自定义构造函数 : 创建对象

工作流程
a.  创建一个空对象
b. this指向这个对象
c. 执行构造函数赋值代码
d. 自动返回这个对象

注意点
(1)构造函数首字母大写 : 提醒别人不要忘记new
(2)构造函数不要手动return
return 基本数据类型:无效
return 复杂数据类型:覆盖new创建的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值