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、原始/基本/值类型:5个
1、*Number - 数字,取值有无数个,而且数字就是直接写,不用加任何东西(控制台输出的颜色是蓝色)
2、*String - 字符串,取值有无数个,但是必须加上""或者''(控制台输出的颜色是黑色)
3、*Boolean - 布尔,取值只有2个,分别叫做true(真|对) 或 false(假|错) - 一般用于当作条件判断,需要搭配上我们明天学习的分支会更加的厉害(控制台输出的颜色是蓝色)
4、Null - 空,取值只有一个,就是null,唯一的作用就是用于释放变量释放内存的,节约内存空间 - 但是每次都要自己释放内存好累哟,以后有更好的方式(控制台输出的颜色是灰色)
5、Undefined - 翻译过来未定义,取值只有一个,就是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<汉字
2、NaN参与任何比较运算结果都为false,那我们怎么判断一个x是不是NaN呢?
!isNaN(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、*自增自减运算符:++,--
举例: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次方