一、JavaScript:
简称js,是一个运行在浏览器端的解释型、弱类型、面向对象的脚本语言。
浏览器端:环境,自带js解释器,打开浏览器可以自动运行,以后也会安装一个独立的js解释器。
解释型:在程序运行之前,不需要检查语法是否正确,直接运行,碰到错误就停止。
编译型:在程序运行之前,需要先检查语法是否正确,如果不正确,直接不运行。
弱类型:变量保存的数据可以是任意的,数据类型由数据来决定。
强类型:变量保存的数据,由数据类型来决定。
面向对象:对象名.属性名;对象名.方法名();
二、JavaScript的特点:
- 可以使用一切编辑工具编辑代码;
- 解释型
- 弱类型
- 面向对象
- 可以做一切css完成不了的效果(轮播、选项卡、购物车、验证...)
三、引入:
- 在html页面上书写一个script标签,在里面书写代码
<script>
//js代码
</script>
- 创建一个.js文件,再在html中进行引入
<script src="xx.js">
//这里面不能写代码
</script>
四、输出方式/打桩输出:
- 在控制台输出日志:console.log(想要输出的东西),不会影响到页面
- 在页面输出日志:document.write(想要输出的东西),如果搭配上点击事件会把页面的所以东西替换掉
- 在弹出框输出日志:alert(想要输出的东西),有时候会卡住整个页面,导致用户只能看见一个白板
五、变量:
创建后可以再次修改
语法:var 变量名 = 值
变量名不是随意的:
- 不能以数字开头
- 建议驼峰命名法或下划线命名法
- 命名要尽量见名知意
- 如果变量名是name,不管你保存的数据类型是什么,都会悄悄给你转成字符串
- 变量名不能是关键字
- 声明变量不赋值结果为undefined
- 同时创建多个变量:var 变量名 = 值,变量名 = 值;
六、常量:
创建后,不允许在修改了,其余特点和变量一样
语法:const 常量名 = 值
七、数据类型分类:
- 原始/基本/值数据类型:
- number:数字,NaN,颜色为蓝色
- string:字符串,必须加上""或者'',颜色为黑色
- Boolean:布尔,取值只有true和false,颜色为蓝色
- null:空,取值只有一个就是null,作用是释放变量释放内存,节约内存空间,提升网页的性能,颜色是灰色
- undefined:只有一个取值就是undefined,颜色为灰色
- 引用/对象数据类型:11个对象
查看数据类型:typeOf(变量)
八、运算符:
- 算术运算符:+、-、*、/、%(取余)
- 算术运算符带有隐式转换,默认会把左右两边转为数字在计算
- true-->1
- false-->0
- undefined-->NaN
- null-->0
- "100"-->100
- "100px"-->NaN
- NaN:Not a Number,不是一个数字,但是它确实是数字类型,有两个缺点:
a. 参与任何的算术运算结果均为NaN
b. 参与任何的比较运算结果都为false - +运算符号如果碰上了字符串,左右两边都会悄悄的转为字符串,然后拼接
- 比较运算符:>、<、>=、<=、==、!=、===(值和数据类型都要相同)、!==
- 结果:一定是个布尔值
- 带有隐式转换:默认左右两边都会悄悄转为数字再比较大小
- 如果参与比较的左右两边都是一个字符串,则会按位PK每个字符的十六进制的unicode号(十进制ASCII码),数字0-9<大写A-Z<小写a-z<汉字。常识:汉字的第一个字:是 一 unicode号是 4e00 ascii是19968,汉字的最后一个字:是 龥 unicode号是 9fa5 ascii是40869
- NaN参与任何的比较运算结果都是false,isNaN()在接收到一个值之后,会尝试将这个值转换为数值,如果能成功转换则返回false,否则返回true;判断是否为NaN的方法:isNaN(x)
console.log(isNaN("fe"));//true console.log(isNaN(1));//false console.log(isNaN(true));//false console.log(isNaN(false));//false console.log(isNaN(null));//false console.log(isNaN(undefined));//true console.log(isNaN(" "));//false
- undefined==null结果为true,但是undefined===null结果为false
- ===和!==都不带隐式类型转换,要求值和数据类型均相同
- 结果:一定是个布尔值
- 赋值运算符:=、+=、-=、*=、/=、%=
- =:赋值:将=右边的东西,保存到=左边的变量名之中
- i=i+1 ==> i+=1
- =:赋值:将=右边的东西,保存到=左边的变量名之中
- 逻辑运算符:&&(与)、||(或)、!(非)
- &&:与(并且),全部条件都满足,结果才为true,只要一个不满足,结果就为false
- ||:或,全部条件都不满足,结果才为false,只要一个满足,结果就为true
- !:颠倒布尔值
- 自增自减运算符:++、--
- 自增:固定的每次只能+1
- 前++:先+1,再返回值
- 后++:先返回原值,再+1
var a = 2; var result = a++ + a++ + ++a + a++ + ++a + ++a; // 2 3 5 5 7 8 console.log(result);//30
- 位运算:
- 左移:m<<n,读作m左移了n位,翻译:m*2的n次方
- 右移:m>>n,读作m右移了n位,翻译:m/2的n次方
- 底数只能是2
九、用户输入框:
var 变量=prompt("提示文字");