2020-08-29---周总结

52 篇文章 0 订阅

day1 JavaScript基本语法

一、JavaScript概述

  1. 什么是JavaScript?
    是一门基于对象和事件驱动的客户端脚本语言。
  2. 哪一年?哪个公司?谁?第一个名字叫什么?
    1995年 网景 布兰登 livescript
  3. ECMA提出的第一套W3C标准:
    ECMA-262
  4. js包含哪几部分?
    ECMAScript
    BOM
    DOM

二、如何引入就js?

  1. 行内脚本(通过事件驱动)
  2. 内部脚本
<script>  </script>
  • 外部脚本
<script src = “”>  </script>

注:如果是外部引入,那么在script标签中不要写任何妮儿,因为写了也不执行。

三、如何输出?(面试)

  1. alert():以警告框的形式输出。但是会中断后续语句的执行。通常在排错时使用。
  2. document.write():输出在页面中,会影响页面布局。
  3. console.log():在控制台输出。输出对象的详细信息。

四、如何换行?

  1. 页面中换行 ‘< br >’
  2. 非页面中换行 \n
    注:转义字符 \ :将特殊含义的符号转成普通字符。
    \t : 表示横向跳格(一次跳8个空格)

五、注释

  • HTML < !-- – >
  • CSS / * * /
  • JS
    单行注释 //
    多行注释 / * * /

六、数据类型

基本数据类型:number(数字) string(字符串) Boolean(布尔) null(空) undefined(未定义)
复合数据类型:object(对象)

七、标识符命名规则

  1. 只能包含:字母、数字、下划线、$
  2. 不能以数字开头
  3. 不能是关键字或保留字
  4. 语义化
  5. 驼峰命名
    (1)大驼峰: HowAreYou (构造函数、类名)
    (2)小驼峰:howAreYou (函数名)
    how_are_you(变量名)
  6. 匈牙利命名
  • 整数:i_num
  • 小数:f_num
  • 字符串:s_str
  • 字符:ch
  • 布尔值:bo
  • 数组:arr
  • 函数:fn
  • 对象:o_div

八、变量或常量

  1. 什么是变量?
    在内存中开辟空间,用于存储数据,而随着程序的运行,这个空间的数据会发生变化,所以称为变量。
  2. 如何声明变量?
    (1)显示声明:var 变量名,变量名,变量名;
    (2)隐式声明:变量名 = 值;
  3. 如何给变量赋值?
    (1)初始化变量值:声明变量的同时给它赋值
    (2)先声明,后赋值
  4. 什么是常量?
    3 true false ‘3’

九、运算符与表达式

1. ++ – 递增递减运算符

从左到右,如果先看到变量,则先取出变量中的值参与其它运算,变量中的值再+1或-1。
从左到右,如果先看到运算符,则先将变量中的值+1或-1,再参与其它运算。

2. 算数运算符

* / % -

规则

  1. 如果是number类型之间的运算,直接运算
  2. 如果是不同类型数据之间运算,则先转成数字,再运算。(转成功,则直接运算;转失败,转为NaN,运算结果直接是NaN)
  3. true(转为1) false(转为0) null(转为0)
  4. undefined NaN 结果一定是NaN(not a number )

注:

  • 0除以非0 的数 :0

  • 非0的数除以0 : infinity

  • 0除以0:NaN

  • 0模非0的数 : 0

  • 非0的数模0 : NaN

  • 0模0 :NaN

+

规则
如果+两边有字符串,就连接成新的字符串

console.log('' + 4 + 4 - 2);  //'42'

3.关系运算符

> < >= <=
  1. 相同类型比较,直接比较
  2. 字符串比较,从左到右依次比较
  3. true(1) false(0) null(0)
  4. undefined(false) NaN(false)
console.log(4 > '3');  //true
console.log(NaN >= NaN)  //false
== !== === !==
  • == !== :只比较结果,不看类型
  • === !== :先比较数据类型,再比较结果

//切记

console.log(null == false); //false
console.log(null == 0); //false
console.log(null == ''); //false
console.log(null == undefined); //true
console.log(null === undefined); //false
console.log(NaN == NaN); //false

4.逻辑运算符

false,0,null,undefined,NaN天然为假

  • !: 非真即假,非假即真 。 !“ ” false
  • && : 如果&&左边表达式的值为true时,返回右边表达式的值;如果&&左边表达式的值为false时,发生短路,不在执行右边的表达式,直接返回左边表达式的值。(要特别注意,返回的是表达式的值,不一定是true或false)
  • || : 如果||左边表达式的值为false时,发生短路,不在执行右边的表达式,直接返回左边表达式的值;如果||左边表达式的值为true时,返回右边表达式的值。

5.三元(三目)运算符

  • 一元(单目):!、++、 - - 、 +(正)、-(负)
  • 二元(双目):* 、/ 、%、 +(加)、 -(减)&& 、 || 、关系运算符
  • 三元(三目):?:
    语法:条件?语句:语句
    当条件为true时,执行:前面的语句
    当条件为false时,执行:后面的语句
    扩展
prompt(‘提示性语句’,‘默认值’):弹出一个用户输入的框。
//第二个参数可以省略

6.赋值运算符

  1. 简单赋值 =
  2. 复合算数赋值 += 、-= 、*= 、/= 、%=
    规则:先取 运算符左边变量中的值运算符右边表达式的值 进行相应的 算术运算,最后将结果赋值给左边的变量。

7.特殊运算符

  1. new : 用于创建对象
    语法:new 构造函数()
var o_num = new number();
var o_obj = new object();
  1. typeof 用于检测数据类型
    typeof后输出的值为字符串类型
console.log(typeof 4);//'unmber'
console.log(typeof '4');  //'string'
console.log(typeof true); //'boolean'
console.log(typeof null); //'object'
console.log(typeof undefined); //'undefined'
console.log(typeof NaN);      //'number'
console.log(typeof typeof 3);  //'string'

十、内置函数

1.isNaN():判断是否为NaN

console.log(isNaN('8 8'));//true
console.log(isNaN('3.4.2'));//true
console.log(isNaN(0 / 0));//true
console.log(isNaN(3 / 0));//false

2.evel():解析字符串为表达式并返回表达式的结果

3.parseInt(‘字符串’,2-36)

将字符串左边有效的数字部分,转为整数。如果第一个字符是非有效数字,则转NaN
第二个参数是用于限制第一个参数的进制范围。

  1. 如果省略第二个参数或第二个参数为0时,表示十进制
  2. 如果第二个参数是小于2或者大于36,结果为NaN
  3. 如果第一个参数不符合第二个参数的进制范围,结果为NaN
<script>
        console.log(parseInt("5 5")); //5 
        console.log(parseInt("3.256"));//3
        console.log(parseInt("3a"));//3
        console.log(parseInt("a3"));//NaN
        console.log(parseInt("0x56"));//86    //0x :表示十六进制数
        console.log(parseInt("3",2));//NaN
        console.log(parseInt("3a",1));//NaN
    </script>

4.parseFloat(‘字符串’)

将字符串左边有效的数字部分,转为小数。如果第一个字符是非有效数字,则为NaN

console.log(parseFloat('3.4.5'));  //3.4
console.log(parseFloat('4 23'));  //4
console.log(parseFloat('a34.3')); //NaN

5.number(‘字符串’)

将有效数字字符串转为数字。如果其中有一个非有效数字,则转为NaN

console.log(Number('3.4.5'));  //NaN
console.log(Number('3 4'));  //NaN
console.log(Number('3a')); //NaN

十一、代码规范

  1. 运算符两边加一个空格
  2. 语句结束加分号
  3. 如果在{}中,缩进一个tab
  4. 小括号嵌套,加空格( () )

day2 逻辑分支

一、程序控制的三大结构

  1. 顺序结构
    从上到下,从左到右依次执行每一条语句,不允许跳过任何一条语句。
  2. 选择结构
    根据条件判断,执行某一段代码
  3. 循环结构
    满足一定条件。重复执行一段代码

二、实现选择结构的语句有哪些?

  1. ?:
  2. if
  3. switch
if
单分支选择
if(条件){
	语句组;
}
双分支
if(条件){
	语句组;
}else{
	语句组;
}
多分支
if(条件){
	语句组;
}else if(条件){
	语句组;
}else if{
	语句组;
}
...
else if(条件){
	语句组;
}else{
	语句组;
}
switch
switch(表达式){
	case 表达式 : 语句组;[break];
	case 表达式 : 语句组;[break];
	case 表达式 : 语句组;[break];
	...
	case 表达式 : 语句组;[break];
	default : 语句组;
}

规则:先计算switch后表达式的值,该值如果与某个case后表达式的值一致,则执行该case后的语句组,如果后面有break,则退出switch语句。如果没有break,则继续执行后面所有的语句组,知道遇到break或右大括号结束。

day3 循环结构

一、循环结构

满足某一条件重复执行某一段代码。

二、循环思想(循环三要素)

  1. 从哪里开始
  2. 到哪里结束
  3. 步长(步进)

三、实现循环的语句?

  1. while
  2. do while
  3. for

四、语法

while:当型循环
循环初值;
while(循环条件){
	语句组;
	步长;
}
do while:直到型循环
循环初值;
do{
	语句组;
	步长;
}while(循环条件);

for:多功能循环
for(循环初值;循环条件;步长){
	语句组;
}

五、额外的格式

循环初值;
for(;循环条件;步长){
	语句组;
}

循环初值;
for(;循环条件;){
	语句组;
	步长;
}

六、无限循环(死循环):条件永远为真

while(1){}
do{} while(1);
for(;1;){}

七、循环之间的区别

1.while
  1. 当型循环,先判断条件,后执行语句
  2. 第一次条件为false是,一次都不执行
  3. 当循环次数不确定时,建议使用
2.do while
  1. 直到型循环,先执行语句,后判断条件
  2. 第一次条件为false时,至少执行一次。
  3. 当循环次数不确定时,建议使用
3.for
  1. 当型循环,先判断条件,后执行语句
  2. 是哪个第一次条件为false时,一次都不执行
  3. 当循环次数确定时,建议使用。

八、break continue

break
  1. 用于switch语句中,跳出switch语句
  2. 用于循环语句中,跳出当前循环
continue

用于循环语句,跳出本次循环,提前进入下一次循环。

day4 函数(上)

一、什么是函数

反复使用 功能代码 封装

二、好处

  1. 程序可控
  2. 一次封装,多次使用(复用)
  3. 随处可调

三、函数的分类

  1. 内置(库、系统)函数
  2. 自定义函数

四、函数的类型

function

五、函数的声明

  1. 语句定义法:任意位置都可调用
function 函数名([参数]{
	//实现的功能代码
}
  1. 表达式定义法:只能先声明,后调用
var 函数名 = function[参数]{
	//实现的功能代码
}

六、调用函数

  1. 一般调用:函数名([参数])
  2. 事件调用

七、函数的参数

  1. 实际参数(实参):调用函数时使用的参数,可以包括常量、变量、表达式
  2. 形式参数(形参):定义函数时使用的参数,只能是变量。
    注:
    当实参数量多于形参数量时,多于的实参忽略
    当实参数量少于形参数量时,多于的形参值为undefined

八、函数的返回值

return:

  1. 将函数的处理结果返回到调用该函数的地方
  2. 退出函数

九、事件相关概念

o_div.onclick = function(){
	console.log('我点击了鼠标');
}
/*
o_div:事件监听的对象
click:点击事件(名词)
onclick:事件驱动
function(){}事件处理程序
*/
/*
绑定事件的语法
对象.事件驱动 = 事件处理程序
*/
	onload : 加载事件
    表单
    onfocus : 得焦事件
    onblur : 失焦事件
    onchange : 改变事件

    鼠标
    onclick :点击事件
    ondblclick : 双击事件
    onmousedown : 鼠标按下事件
    onmouseup : 鼠标弹起事件
    onmouseover : 鼠标移入事件
    onmouseout : 鼠标移出事件
    onmouseenter : 鼠标移入事件
    onmouseleave : 鼠标移出事件
    onmousemove : 鼠标移动事件

    键盘
    onkeydown : 键盘按下事件
    onkeyup : 键盘弹起事件
    onkeypress : 键盘按过事件

day5 函数(下)

一、递归

自己调用自己
递归的本质:循环(初始值,条件,步长)

二、如何创建对象?

  1. 字面量的方式
    {key:value,key:value}
    当只需要一个对象的时候使用
  2. new 内置构造函数()
    new object();
  3. new 自定义构造函数()
    new 函数名();
    批量创建对象时使用

构造函数语法

function 函数名([参数]){
	this.属性 = 值;
	this.方法 = function(){
	...
	}
}

三、如何访问对象中的属性和方法

  1. 对象.属性 对象.方法
  2. 对象[‘属性’] 对象’方法’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值