day11

回顾

基本语法

在html的使用

<script></script>

注释

//
/* */

指令结束符

;
换行

输出

console.log()
document.write()
alert()

变量

var 变量名 = 值;
var 变量名;   //默认值undefind
var v1=100,v2=200,v3=400; //同时声明多个变量

变量名的命名规范
由数字、字母、下划线和$ 组成,不能以数字开头
严格区分大小写。 建议使用小驼峰命名法
变量名不能使关键字和保留字    

 

JS程序

  • 获取页面中元素对象 getElementById()

  • 对元素对象进行操作 属性

  • 事件 onclick

  • 函数

 

数据类型

原始类型 Number String Boolean Null Undefined

对象类型 Object Array ...

Number 数字

NaN isNaN(参数)

String

  • 声明方式 : 单引号 双引号 反引号(ES6) ${}

Boolean

  • true false

Null和Undefined

  • 函数的默认返回值是null

  • 没有赋值的变量是undefined

数据类型转换

  • 自动转换: 取决于运算符

  • 强制转换: Number() String() Boolean()

 

弱类型 和 强类型 动态类型和静态类型 (了解)

  • 动态类型: 不需要提前为变量指定 数据类型

  • 静态类型: 需要为变量提前指定 数据类型

  • 强类型: 数据类型不能自动转换

  • 弱类型: 数据库可以自动转换

JavaScript:  弱类型   动态类型
Python:     强类型   动态类型

 

 

运算符

分类

  • 按操作数的个数: 一元运算符(++/ -- 正号和负号) 二元运算符(+-/*) 三元运算符(?:)

  • 按功能

算术运算符

+  - * / %  ++  --

比较运算符

==
=== 建议
!=
!==
> >= < <=

逻辑运算符

&&
||
!

位运算符怒

赋值运算符

=
+=
-=
*=
/=
%=

其他运算符

?: 
typeof
+ 字符串连接符
in
instanceof
void

优先级

 

 

课堂笔记

1 流程控制

1.1 条件语句 分支结构

单向分支

if (条件表达式) {
code...
}

双向分支

if (条件表达式){
   
} else {
   
}

 

多向分支

if (条件表达式) {
   
} else if(条件表达式) {
   
} else if (条件表达式) {
   
} else {
   
}
switch (条件表达式) {
       case 表达式可能的结果:code... break;
       case 表达式可能的结果:code... break;
       case 表达式可能的结果:code... break;
       case 表达式可能的结果:code... break;
       default code...
}

嵌套分支

if (条件表达式) {
   if (条件表达式) {
   
  } else {

  }  
} else {
   if (条件表达式) {
       
  }
}

 

 

1.2 循环语句

while循环

while (循环条件) {
   //循环体
}

do...while 循环

do {
   //循环体
} while (循环条件)

for 循环

for (变量定义;循环条件; 变量变化) {
   //循环体
}

 

1.3 其他语句

跳转语句

continue;   跳出当前循环  继续下一次
break;     结束循环
return;     结束函数

异常

try {
   
} catch(err) {
   
}


try {
   
} catch(err) {
   
} finally {
   
}

catch相当于python的except

严格模式

//写在所有代码的最前面
//开启严格模式
‘use strict’
  • 严格模式下 声明不加 var 会报错

  • eval() 在严格模式不能用

 

 

1.4 注意

  • 当分支语句和循环语句 结构体({}内) 只有一行代码的时候,可以省略{}

if (条件) 
代码

 

2 函数

2.1 定义函数

//function 关键字方式
function 函数名(参数1, 参数2) {
   code...
}

//表达式方式
var  函数名 = function(参数1, 参数2) {
   code...
}

2.2 函数特点

  • 函数名就是变量名

  • 函数调用 必须加 ()

  • 关键字方式定义的函数, 会存在函数提升 (在函数定义的前面 调用函数)

 

2.3 函数的参数问题

形参和实参

  • 实参数量>形参数量 多给的实参会被忽略

  • 实参数量<形参梳理 多出的形参,默认值undefined

参数默认值

//ES6 新增的语法
function demo(a, b=默认值) {
   
}
//有默认值的参数 一定在后面

可变数量的参数

arguments对象 可以获取所有的实参
只能在函数中使用
arguments是类数组对象,用法同数组,可以使用for循环遍历

 

2.4 return

  • return 可以结束函数

  • return返回值

  • js return 只能返回一个值

 

2.5 回调函数

  • 函数的参数 还是 函数

 

2.6 自调函数

(function(){
   
})();

(function 函数名(){
   
})()

//如果多个自调函数连续写, 中间必须加 ; 否则报错
//产生局部作用域
//有效避免全局变量污染

 

2.7 递归

 

 

 

总结

  • 流程控制 分支: 单向分支 双向分支 多向分支(else if switch..case) 嵌套分支

  • 流程控制 循环: while循环 do...while循环 for循环

  • 其他控制语句: 跳转、异常、严格模式

  • 函数 (定义、特点、参数 、自调、回调、递归)

 

要点

  • if switch

  • while for

  • try use strict

 

  • function demo (q1,q2) {} var fn = function(q1,q2) {} arguments.length

  • 回调 参数是函数 应用场景:数组排序

  • 自调 局部作用域

  •  

 

posted @ 2018-08-09 21:18  xujinjin  阅读(134)  评论(0编辑  收藏  举报