Javascript是什么
Javascript又称JS,是一种编程语言,脚本语言,最初主要是用来做表单验证的语言,而随着技术的发展和完善,Javascript的功能也越来越完善,能做的也越来越多,目前的Javascript主要以页面的交互为主,与HTML,CSS并称前端三剑客。其主要是用来进行页面交互,
Javascript的组成
BOM—浏览器对象模型(JS的运行平台)
DOM—页面的根,页面内容的存放处
ECMAscript—基本规则
我们在使用JS时主要操作的是DOM,而BOM相当于装DOM的盒子
如何开始学习JS
打印
首先,我们要学习的是最基本的js打印方法,也就是信息的呈现方法。主要有三种:
- alert();弹出打印框 弹出框,弹出时会阻塞程序执行
- document();打印页面 打印页面,影响html布局:某些情况覆盖页面
- console.log();打印控制台 打印控制台,首选。
变量
变量声明关键字:
var
语法:var 变量名 = XXX ;
命名规则:
-
必须以字母,_,$开头
-
最好语义化,看起名知其意,使用数据类型的首字母做前缀
-
不允许用关键字和保留字
-
变量名由多个单词组成,要使用驼峰式命名法
驼峰命名法: 小驼峰 :第一个单词字母小写后面的字母大写 样式:var myName 大驼峰:所有单词字母大写 样式:var MyName
驼峰命名法是现在程序员主要使用的命名规则之一
八大数据类型
类型名称-----------------解释
- string:----------------(被引号包裹的类型都是数值类型)
- number:---------------- 数字类型
- Boolean:----------------布尔类型返回值只有true和false
- undefined:undefined (未赋值)
- object:{} 对象,一个名字对应一个值
- null: 空类型
- Symbol: 也是一种对象,属性名不相等
- function:标志是:function … function fu(){}
- bigInt:谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)
注意:nul和undefined不一样,前者是空,后者是没有值的变量,至于什么是变量,我们下面会说到
检测数据类型:
typeof 变量名称
typeof (变量名称)
运算符:
常规运算符:+ - * / %
关系运算符:> < >= <= == ! ===(严格)
当关系运算符两边斗视字符时,没有隐式类型转换,但是比较规则为字符的比较:逐位比较,得到结果后停止
逻辑运算符:&&且 ||或 !非
赋值运算符:= += -= *= /= %= ++ --
运算符的注意事项:
- ||:从左向右检测,遇到false的值,继续检测停留在右侧的值,如果先遇到true,那么结果确定,停留在当前为true的值.
- &&:且的两边,只要出现false,就是false、
- +:当+号两边,只要出现一个字符,那么就是字符串的拼接(连接),两边都是数值,才是数值的+
- -*/%:直接作为数值运算
- 前自增(把++或- -放在数值的前面):
先计算,再使用 - 后自增:
先使用,后计算 - ===:严格等于,没有隐式类型转换,比较时不仅比较值,还比较数据类型
- 当关系运算符两边斗视字符时,没有隐式类型转换,但是比较规则为字符的比较:逐位比较,得到结果后停止
类型转换:
隐式转换:
在一定情况下,计算机自动对数据进行转换
- 在if(小括号)中的语句会发生隐式转换
- +号有两种含义,数学意义和字符串的拼接,优先字符串拼接,所以在检测到+号左右两边在字符串的时候,会将另一边不是字符串的数据转化成字符串,再进行操作
- 除了加号有两层意义以外,- * / %号只有数学意义,所以当-*/号进行运算时默认将两边的数据类型隐式转换成数字类型在进行计算
- if(小括号)中只需要布尔值,那么在if判断中,会把括号内所有数据类型,都隐式转换成布尔型。
- 在if()中,非0数字都会转成true,非空字符串都会转成true;这是两条基本规则。
- 在if()中,undefined,null,NaN为false,对象为true,函数也为true
显式转换:(强制)
其他转数值:
- parseInt(); 从左向右检测,遇到数字就转,遇到非数字停止。如果第一步就不能转,那么就NaN
- parseFloat(); xqm7xq能识别小数点。从左向右检测,遇到数字就转,遇到非数字停止。如果第一步就不能转,那么就NaN
- Math.round(); 严格转换,取最近的整数,不允许出现任何非数字,出现即为NaN
Number(); 严格转换,可以识别小数点,不允许出现任何非数字,出现即为NaN
其他转字符:
- num.toString(); 直接转换,相当于给数值添加引号
- um.toFixed(); 括号内是转字符的小数位,多补0 少四舍五入
转换结果:
用typeof来验证,数字console.log后一般为蓝色,字符为黑色
undefined:被转换的变量没有被赋值
NaN:not a number:代表意外或非法转换的数字
不是一个数字的数值型数据
isNaN(): true/false
是不是NaN,及是不是一个非数字?