2020.04.20--04.25周知识总结

一、:Js是javascript的简称,作用是用来跟网页互动,交互的。
二、:Js书写分三种:内联(行内)、外部、内部。
内联:属性形式是由事件触发,比如:< input type=”button” οnclick=“(alert(“你好”))” >
内部:写在script双标签里面,比如:< seript>alert(“你好”) </ seript>
外部:script双标签通过src路径引入js
注:不太建议使用内部样式和内联样式书写js代码,script标签放在不同的位置会受到影响,如果不是特殊要求,暂时将script标签写在body后面,不允许在引入外部js的script标签里面书写js代码!!!写了也不会执行。
三、:JavaScript组成
ECMAScript:语法,规定了以什么样的形式书写代码
Bom:浏览器对象模型,提供了浏览器的操作
Dom:文档对象模型,提供了网页的操作
三者的关系:ECMAscript规定了以什么样的形式书写代码,在bom里面操作dom
四、:打印信息的方式
打印信息是打印,不是输出信息,将计算机的执行结果或数据给用户呈现出来。
打印到浏览器中,操作的是bom对象
alert()
打印到浏览器的弹出框,操作的是dom对象
Domcuent.write()
打印到浏览器的控制台,操作的也是bom对象
Console.log()
五、:数据
分门别类,记录信息的方式
常见的数据类型:
字符型(string):必须添加单、双、反引号,任何数据只要添加引号,就是字符!
数值型(unmber):20
Undefined:undefined,未赋值,不是未定义
布尔值(boolean):true\flase
对象(object):标志是{},并不是绝对的
函数(function):标志是function,并不是绝对的
Null(object):null,不是空对象,虚无的
描述空类型的时候,出了null,其他都要加类型。
比如:空 字符:””
空 对象:{}
空 函数:function(){}
空 数组:[]
Null:null
Undefined未赋值:undefined
如何检测数据类型?
检测数据类型,通过typeof关键字来检测:typeof(变量或数据),加不加括号都可以。当出现typeof typeof(变量或数据)的时候,检测的结果必然是字符型数据
六、:变量
当程序中,需要重复操作某些相同数据的时候,为了方便,可以将数据起个外号,通过这个外号,找到数据并使用,这个外号就叫做变量与法。
通过var的关键字,声明:var a
通过赋值的方式,将数据存到变量中,一个等号赋值
Var a = ‘hellow’;
讲等号右边的数据存到左边的变量中。
变量名的命名规则:
必须以字母、下划线、 开 头 不 允 许 出 现 字 母 、 下 划 线 、 开头 不允许出现字母、下划线、 线以外的内容
不建议使用中文,有兼容
尽量词必达义,建议使用当前数据类型的首字母为前缀或者使用驼峰式命名法,不允许使用关键字(被EAMCSrcipt定义了功能的单词)或保留字(暂时还没被定义,但是将来有可能会被定义的单词)。
小窍门:如果担心是关键字或保留字,可以在单词前面加前缀。
注:变量名,千万不能加引号!!!

七、数据类型的转换
1:为什么要转换?
如果用户给了一个数据或者计算机再或者其他程序给了一个数据不是我们想要的,那么就可以转成我们需要的数据类型在进行运算。
2:数据类型的转换方法:
分为强制转换和隐式转换:
强制转换(显示转换,主动转换):
字符转换数值:
parseInt(要转换的数据或变量)
从左向右依次检测,遇到第一个非数字的字符,停止转换。忽略小数点后面的所有内容,其实就是把小数点识别成了非数字。如果第一位就是非数字,直接NAN。
NAN是not a number的缩写,意思是不是一个数字的数值型数据,非法的数值运算的结果。
parseFloat(要转换的数据或变量)
从左向右依次检测,遇到第一个非数字的字符,停止转换。可以识别小数点,如果第一位就是非数字,直接NAN.
Math.round(要转换的数据或变量)
Math.round不是专门做字符转数值的,是专门用来取整的,取最近的整数(四舍五入),顺带着可以实现转换。
严格转换:只要出现非数字,就是NAN。
Number(要转换的数值或变量)
不是专门做字符转数值的,系统内置的构造函数,只是用来创建数值对象,顺带着可以实现转换。严格转换:只要出现非数字,就是NAN。
数值转字符;
数值变量:.tostring()
直接转换,相当于加了个引号。
数值变量:.tofixed(n)
(四舍五入)并保留小数点三位数
隐式转换(被动转换):
情况和规则:
1:算术运算
+号两边只要出现字符,结果必然为字符,- * / %的结果必然为数值。
2:关系运算
<、>、<=、>=、!=、==两边只要出现数值,那么另一边也会转成数值,进行比较。
八、数据的运算
1:算数运算符
+号,当+号两边都是数值型数据的时候,是数学上的运算,当任意一边成了字符,那么会将+两边的数据拼接起来。

    • / %就是正常的数学运算,就算两边不是数值,也会默认转成数值,进行运算。如果某个数据无法转成数值,会得到NAN。
      2: 关系运算符----结果就是布尔值
      <、>、<=、>=只要有一边出现数值,都是数值的比较规则,如果都是字符,才是字符的比较规则:逐位比较,得到结果就停止。
      !=、= =会发生隐式转换,或者只比较大小,不比较类型。
      != =、===不会发生隐式转换,不仅比较大小,还比较类型。
      3:逻辑运算符
      ||(或):两边只要出现true,结果就是true,两边必须都为false,结果才是false
      &&(且):两边只要出现false,结果就是false,两边必须都为true,结果才是true
      !(非):取反
      4:赋值运算符
      = 号:
      将等号右侧的数据,存在左侧的变量中,如果左侧原本有值,则会被覆盖。
      +=、-=、*=、/=、%=先计算,在赋值。
      5:一元运算符
      自增:
      ++:增加1
      前后之分:前自增++n:先计算,后使用。
      后自增n++:先试用,后计算。
      自减:
      –:减少1
      前后之分:前自减–n;先计算,后使用
      后自减n–:先试用,后计算

九、js中三大特殊数据:undefined、null、NaN
(1)NaN:非法的数值运算的结果
特殊之处:
1:是一个数值型的数据,但是不是一个数字。
2:NaN不等于任何一个值,和任何数据都不相等,NaN不等于NaN.
检测方法:inNaN(要检测的数据)
True:检测结果为NaN或能转成NaN。
False:检测结果不是NaN或不能转成NaN。
(2)undefined是未赋值,类型是undefined;null是空,类型是boject。
特殊之处:
特殊1 Undefined和null在关系运算符两边隐式类型转换后,得到了一致的数据。
特殊2 undefined被Number转成NaN,null被Number转成0。
如何判断三大特殊的值,分别是谁?
NaN可以用isNaN()来判断
(3)isNaN(要判断的值或变量);
Var a = NaN;
Console.log(isNaN(a));结果为布尔值:true为是,false为不是。
Undefined可以使用typeof来判断
Typeof 要判断的值或变量
Var b = undefined;
Console.log(typeof(b));结果为布尔值
Null需要配合typeof和关系运算来判断。
Typeof要判断的值或变量= “object”
V ar c = n ull;
console.log( typeof c) = == “object” );
还需要(&&)
要判断的值或变量
=null
Console.log(c= ==null);
十、逻辑分支(选择结构,分支结构)
1:程序的三大结构
顺序结构、分支结构、循环结构
2:分支语句
If单分支
If(条件){执行语句}
If else双分支
If(条件){条件为true时要执行的语句}else{条件为false时执行的语句};
分支的嵌套(双分支模拟多分支):
在执行语句内可以继续写其他分支。
if(条件1){}else if(条件2){}else if(条件3){}else…`
If的小括号里面也会发生隐式类型转换规则。
规则:其他转布尔
数值转布尔:非0为true,0为false
字符转布尔:非空字符为true,空字符为false
对象转布尔:对象为true
数组转布尔:数组为true
函数转布尔:函数为true
特殊数据转布尔:undefined、null、NaN都为false。
Switch:多分支
语法: var n = 2;
var msg = “”;
switch(Number(n)){
case 0:
msg = “星期日”;
break;
case 1:
msg = “星期一”;
break;

default:
msg = “你输入的数字不对,请输入0~6之间的数字”;
}
console.log(msg);
规则:当要判断的值是固定的数据时,选择使用switch
如果套判断的值的范围时,选择使用if else。
Switch的case判断,不存在隐式类型转换,某些情况下,根据场景,选择是否需要主动转换。
使用switch判断范围
var cj = 45;
switch( true ){
case cj<60:
console.log(“不及格”);
break;
case cj>=60 && cj<70:
console.log(“及格”);
break;
default:
console.log(“以上case都没执行”);
}

十一、小数的精度问题
1:现象
明明只有一位小数,但是最后却出来很多位
2:原因
计算机最终执行或识别的符号只有0和1,二进制
计算机中有一套完善的转换机制,所有内容,不管是文字,字符,任何数据,图片,声音,视频,最终都会被解析成二进制
计算机对于小数的计算,会产生误差
3:解决
主动保留n位小数,得到的数据类型是字符型 num = num.toFixed(n);
转成数值 num = Number(num);
十二、三目运算符
1:语法
条件 ?条件为真,值1 :条件为假,值2;
2:注意
三目其实就是一种简写方式,如果不能简写,那就不用三目;三目是个表达式,表达式最终会计算出一个值。
3:应用
var n = 16;
var m = n>10 ? n.toString() : “0”+n;
console.log(m);

十三、逻辑运算符的高级用法
所有的隐式类型转换,仅仅发生在该数据被使用时 ,该数据还是原本的内容。
1:||
基础规则:
或的两边只要出现一个true就是true
如果两边都是false,就是false
原理:
如果左侧是true,那么就确定或的结果了,不再向右检测;如果左侧是false,不能确定结果,需要继续向右检测,不管右边检测到什么,结果都是右侧的。
2:&&
基础规则:
两边只要出现false,结果就是false,两边必须都为true,结果才是true
原理:
左边是true,不能确定结果,继续向右检测,左边是false,确定结果,不再向右检测。
3:!
基础规则
取反。灵活利用非,实现其他转布尔

十四、循环结构
1:程序的三大结构
顺序:代码自上而下,按顺序执行
分支:根据指定条件,选择不同的执行
循环:重复
2:循环的意义
节省操作时间,减少代码冗余
3:循环三要素
计数器的创建
执行条件(停止条件)的设定
计算器的改变
4:循环的语句
配合指定的语句,这个语句叫循环语句。
While
语法:
var i = 0;
while( i<10 ){
document.write(“hello world
”);
i++;
}

Do while
语法:
var i = 0;
do{
console.log(i);
i++;
}while(i < 10){
console.log(“循环结束了”);
}
While和do while的区别
Do while语句比while语句多执行一次。
十五、for循环语句
For语法:
for(var i=0;i<=10;i++){
console.log(i);
}
特点:
三要素更集中,无需考虑计数器改变位置而影响程序的结果;顺序不能变(计数器的初始值;条件;计数器的改变)
执行顺序:
1:初始化计数器
2:条件;4:循环体;3:改变…
十六、循环中的控制关键字
1:break
特点:立即结束循环,后面的任何代码都不再执行
虽然和switch里面的break长得一样,但是各有各的功能。
2:continue
特点:跳过本次循环,继续执行下次循环。
3:死循环
无法通过自身控制结束的循环
特点:消耗大量的内存,浪费资源,会使页面死机。
但是,可以利用死循环的思路来解决不知道循环次数的问题(记得在合适的时候控制关键字停止)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值