Javascript基础篇

81 阅读4分钟

JavaScript

1、概述:

JavaScript:简称js,是一个运行在客户端浏览器端的【解释型】【弱类型】【面向对象】脚本语言。

2、如何使用JS:

使用方式:2种

1、直接在HTML写上一个script标签,在里面书写JS代码 - 上课用
			<script>JS代码</script>
                        
2、创建一个xx.js文件,在其中写入JS代码,最后在HTML引入 - 正式开发时使用的方式
			<script src="js/03.js">
				此处不可以再书写JS代码
			</script>

输出方式/打桩输出/检查错误:3种

1、*在控制台打印输入日志:console.log()
2、在页面上输出日志:document.write(你想要输出的东西);
//document此HTML文档 
3、在浏览器自带的警告框输出日志:alert(你想要输出的东西);
//有时候会卡住整个浏览器,导致我们的用户只能看到一个白板

3、变量和常量:

变量:

var 变量名=值;
特殊:
     变量名其实不是随意的:
	1、不能以数字开头
	2、建议使用驼峰命名法或下划线命名法
	3、命名要尽量的见名知意
     如果你的变量名是name,不管你保存的数据类型是什么,都会悄悄的给你转为一个字符串 - name这个变量名是一个关键字
     变量名不能是关键字
     变量可以只创建,不赋值,默认值为undefined,但是从今天开始我们要牢记undefined是一个垃圾,拿来做什么都要不得
     如果多个变量连续创建,简写

常量:

生活中的常量:
	PI
	一个小时60分钟
	一天24个小时
	一年365/366天
	语法:const 常量名=值;

数据类型有哪些?分为两大类
	1、原始/基本/值类型:51、*Number - 数字,取值有无数个,而且数字就是直接写,不用加任何东西(控制台输出的颜色是蓝色)
		2、*String - 字符串,取值有无数个,但是必须加上""或者''(控制台输出的颜色是黑色)
		3、*Boolean - 布尔,取值只有2个,分别叫做true(真|对) 或 false(假|错) - 一般用于当作条件判断,需要搭配上我们明天学习的分支会更加的厉害(控制台输出的颜色是蓝色)
		4Null - 空,取值只有一个,就是null,唯一的作用就是用于释放变量释放内存的,节约内存空间 - 但是每次都要自己释放内存好累哟,以后有更好的方式(控制台输出的颜色是灰色)
		5Undefined - 翻译过来未定义,取值只有一个,就是undefined,变量默认值为undefined,从今天开始我们要牢记undefined是一个垃圾,拿来做什么都要不得,undefined其实是我们祖师爷犯的一个错误,但是他自己不承认(控制台输出的颜色是灰色)
                //查看数据类型:typeof(变量) - 熟练过后,我们光看颜色,也能知道是什么数据类型
         2、引用/对象类型:有11个,可以暂时理解为有11(属性和方法)个对象

4、运算符:

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

1、%:取余,俗称模,两个数相除,不取商,而是取除不尽的余数
			作用:
				1、*任意数%2 - 判断奇偶数
				2、取出某个数字的后n位
2、*带有隐式转换:悄悄地会将数据类型转换,发生变化,默认:将左右两边都悄悄的转为数字,再运算!
			true->1
			false->0
			undefined->NaN
			null->0
			"100"->100
			100px"->NaN
NaN:Not A Number:不是一个数字,但是他确实是数字类型,不在三界之中,不是一个有效的数字,没有任何优点,但是有两个缺点:
		1、参与任何算术运算结果仍为NaN
		2、参与任何比较运算结果都为false
3、+运算符:如果碰上一个字符串,左右两边都会悄悄的转为字符串,+运算不再是+运算,而是拼接操作

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

何时使用:一般都出现在明天的分支结构之中,我们可以通过条件满足不满足,走不同的路线
结果:一定是一个布尔值
带有隐式转换:默认左右两边都会悄悄的转为数字在比较大小
特殊:
1、如果参与比较的两边【都是】一个字符串!则会按位PK每个字符的十六进制unicode号(十进制ASCII码)
数字0-9<大写A-Z<小写a-z<汉字
2NaN参与任何比较运算结果都为false,那我们怎么判断一个x是不是NaN呢?
		!isNaN(x);
		专门为了判断NaN而存在的,结果一定是一个布尔值:
		true->是一个有效数字
		false->是一个NaN
3undefined==null;//true
解决:===,全等:不带隐式转换的等值比较,要求数据相同,值也要相同

3、*逻辑运算符:

&&:与(并且)
	全部条件都满足,结果才为true
	只要一个不满足,结果就为false

||:或者
	全部条件都不满足,结果才为false
	只要一个满足,结果就为true

!:颠倒布尔值
	!true->false
	!false->true

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

1、=:赋值符号,将=右边的东西,保存到=的左边的变量名中
2、后面5个可以理解为是一种升级写法,一句话两个操作,运算后再保存回变量本身!
		i=i+1 ==> i+=1

5、*自增自减运算符:++,--

举例:i++ === i+=1 === i=i+1
自增:固定的每次只能+1
累加:+=每次加几由程序员自己决定

笔试题:
前++ 和 后++的区别?
1、如果单独使用,前++和后++,没有任何区别!
2、但是如果参与了其他表达式,变量始终都会+1,但是前++和后++
【返回的结果】不同
		前++,返回的是加了之后的新值
		后++,返回的是加了之前的旧值

6、位运算:

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