JS第一周的笔记梳理

97 阅读7分钟

概述:JavaScript:简称js,是一个运行在客户端浏览器端的**【解释型】【弱类型】【面向对象】脚本语言** 1、js的运行环境: 1、浏览器自带js解释器,不需要安装任何环境 2、等到我们学习Node.js时候,确实需要自己安装一个服务器端的环境 输出方式/打桩输出/检查错误:

3种 - 给程序员使用的,并不是给用户看的    

    1、*在控制台打印输入日志:console.log(你想要输出的东西);//console控制台 log日志

    2、在页面上输出日志:document.write(你想要输出的东西);//document此HTML文档 write写入 - 支持标签,但是有一个缺点:平时无所谓,但是如果绑定了点击事件,会将页面上所有的内容全部替换掉,那你的网页就白写了

    3、在浏览器自带的警告框输出日志:alert(你想要输出的东西);//有时候会卡住整个浏览器,导致我们的用户只能看到一个白板

3、了解-数据类型有哪些?分为两大类

1、原始/基本/值类型:5个

1、*uber-数字,取值有无数个,而且数字就是直接写,不用加任何东西(控制台输出的颜色是蓝色)

2、*stig-字符串,取值有无数个,但是必须加上"或者"(控制台输出的颜色是黑色)

3、*boolean-布尔,取值只有2个,分别叫做true(真)或false(假)

4、运算符:   

    1、*算术运算符:+ - * / %

           特殊:

                 1、%:取余,俗称模,两个数相除,不取商,而是取除不尽的余数

                        *任意数%2 - 判断奇偶数                    

                         2、取出某个数字的后n位   

                         console.log(1234%10);//4

                         console.log(1234%100);//34 

                         console.log(1234%1000);//234

2、*带有隐式转换:悄悄地会将数据类型转换,发生变化,默认:将左右

两边都悄悄的转为数字,再运算!

true->1

false->0

undefined->NaN

null->0

"100"->100

"100px"->NaN,确实可以将字符串转为数字,但是前提必须是纯数

字组成的字符串才可以,但凡包含了非数字字符,则为NN

NaN:Not A Number:不是一个数字,但是他确实是数字类型,不在

三界之中,不是一个有效的数字,没有任何优点,但是有两个缺点:

1、参与任何算术运算结果仍为NaN

2、参与任何比较运算结果都为false

3、+运算符:如果碰上一个字符串,左右两边都会悄悄的转为字符串,+

运算不再是+运算,而是拼接操作

目前留有两个问题:

"100px"*2=NaN-暂时解决不了,等学了强制转换

NaN参与任何比较运算结果都为false,那我们怎么判断一个x是不是NaN呢?马上解决

2、*关系/比较运算符:>,<,>=,<=,=,=,==,==

何时使用:一般都出现在明天的分支结构之中,我们可以通过条件满足不满足,

走不同的路线

结果:一定是一个布尔值

带有隐式转换:默认左右两边都会悄悄的转为数字在比较大小

特殊:

1、如果参与比较的两边【都是】一个字符串!则会按位PK每个字符的十

六进制unicode号(十进制ASCII码)

数字0-9<大写A-Z<小写a-z<汉字

常识:汉字的第一个字:一

unicode号:4e00

asci码:

19968

汉字的最后一个字:龥

unicode号:9fa5

asci码:2、NaN参与任何比较运算结果都为false,那我们怎么判断一个x是不是

NaN呢?

lisNaN(x);

专门为了判断NaN而存在的,结果一定是一个布尔值:

true->是一个有效数字

false->是一个NaN

3 undefined==null;//true

解决:=,全等:不带隐式转换的等值比较,要求数据相同,值也

要相同

3、*逻辑运算符:在比较运算的基础上,在进行综合比较,一个条件比较不出来我

想要,我们可以考虑综合比较

&&:与(并且)

全部条件都满足,结果才为true

只要一个不满足,结果就为false

川:或者

全部条件都不满足,结果才为false

只要一个满足,结果就为true

!:颠倒布尔值

!true->false

!false->true

4、赋值运算符:=,+=,=,=,/=,%=

1、=:赋值符号,将=右边的东西,保存到=的左边的变量名中

2、后面5个可以理解为是一种升级写法,一句话两个操作,运算后再保存回

变量本身!

i=i+1==>i+=1

5、*自增自减运算符:

举例:it+==it=1=ii+1

自增:固定的每次只能+1

累加:+=每次加几由程序员自己决定 6、位运算:

左移:m<n,读作m左移了n位,翻译:m*2的n次方

右移:m>>n,读作m右移了n位,翻译:m/2的n次方 垃圾:底数只能是2,不可以修改!

第二天 程序的流程控制语句:3种 1、顺序结构 - 默认:从上向下依次执行每一句话 2、分支结构 - 通过条件判断,选择部分代码执行 3、循环结构 - 通过条件判断,选择要不要重复执行某块代码 1、if分支:3种写法 1、一个条件,一件事,满足就做,不满足就不做 if(条件){ 操作; }

		2、一个条件,两件事,满足就做第一件,不满足就做第二件
			if(条件){
				操作;
			}else{
				默认操作;
			}

		3、多个条件,多件事,满足谁就做谁
			if(条件1){
				操作1;
			}else if(条件2){
				操作2;
			}else{
				默认操作;
			}
                            
                            switch...case分支:
		语法:
			switch(变量/表达式){
				case1:
				操作1;
				break;
				case2:
				操作2;
				break;
				default:
				默认操作;
			}

1、parseInt(str/num) - parse解析 Int整型 - 专门用于将【字符串转为整数】的 执行原理:从左向右依次读取每个字符,碰到非数字字符就停止转换,如果一来就不认识则为NaN,不认识小数点

2.parseFloat(str) - parse解析 Float浮点数(小数) - 专门用于将【字符串转为小数】的 执行原理:几乎和parseInt一致,认识第一个小数点

3、转布尔: Boolean(x);//万能的,任何人都可以转为布尔,完全等效于隐式转换,其实Boolean()就是隐式转换的底层原理,还不如 !!x 只有6个会为false:0,"",undefined,null,NaN,false - 其余的全部都是true

第三天, 循环三要素: 1、循环条件:开始 - 结束,循环的次数 2、循环体:你要做的操作 3、循环变量:记录着我们当前在哪一次,而且他会不断的变化,变化往往都是向着不满足循环条件前进的 1、while循环: 语法: var 循环变量=几; while(循环条件){ 循环体; 循环变量变化; }

   for循环:和while的原理是一样的,但是他比while看上去更加的简洁,更加的舒服,那while能做的事,for也可以去完成
	语法:
		for(var 循环变量=几;循环条件;循环变量变化){
			循环体;
		}

	特殊:
		死循环:for(;;){操作}

do...while循环:垃圾:while我们都不怎么使用,更不要说更复杂的do...while了 - 语法: var 循环变量=几; do{ 循环体; 循环变量变化; }while(循环条件

1、概念:Function - 函数,也称之为方法,先【预定义】好,以后可以【反复使用】的【代码段】

2、如何使用函数:2步 1、定义/创建/声明: function 函数名(){ 函数体/代码段; }

2、调用函数:2种 1、在JS内部写:函数名() - 程序员写几次就会调用几次

2、在HTML页面上绑定事件: - 任何元素都可以绑定点击事件

3、我们以后何时使用函数呢? 1、不希望打开页面立刻执行 2、希望由用户来触发 - 提升用户的体验感 3、以后每一个独立的功能(作业)都要封装为一个函数 4、函数的地位很高,是第一等公民地位

带参数的函数:2步 1、创建出带有形参的函数:其实就是一个变量,只不过不需要写var,而且不需要赋值,所以称之为叫做形式参数,简称形参 function 函数名(形参,...){ 函数体/代码段; }

2、使用带参数的函数时,记得要必须传入实参 - 实际参数,就是你传递过去的值! 函数名(实参,...) 注意:传参的时候顺序是不能乱的,必须和形参的顺序一一对应上,数量也不要多也不要少 1、不带参数的函数,用于执行一些固定操作 2、带参数的函数,可以根据我们传入的实参的不同,执行的操作略微不同