javascript 语法
1.javascript 函数、变量和操作符都是区分大小写的。
2.javascript标识符可以包含字母、数字、下划线(_)或美元符($),不能以数字开头。
3.关键字不能用作标识符。
编码习惯
js通常使用camel规则进行标识符书写。
变量定义
1.javascript的变量是松散类型的,所谓松散类型就是用来保存任何类型的数据。
2.定义变量时要使用var操作符(var是关键),后面跟一个变量名(变量名是标识符)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zs993nam-1631873094806)(javascript函数.assets/image-20210322091043981.png)]
数据类型 5+1
number
number类型中的NaN
1.非数值(Not a Number)是一个特殊的值,这个数值表示本来要返回数值的操作数未返回数值的情况
2.任何涉及NaN的操作(NaN + 1)都会返回NaN
3.NaN与任何值都不相等,包括NaN本身
-
isNaN()函数 ,这个函数可以接受任何类型的参数,可以帮我们判断该参数是否"不是数值"
alert(isNaN(NaN)); //true alert(isNaN("10")); //false 数值为10 alert(isNaN("blue")) //true 不可以转化成数值 alert(isNaN(true)) //false 数值为1
Number类型
八进制
八进制值的第一位必须是0,然后是八进制序列(0~7)如果字面值中的数组超出了范围,那么前导0就会被忽略,后面的数值将会被当做十进制解析。
var num = 070 //八进制的 56 var num = 079 //无效八进制数值————解析为十进制79 var num = 08 //无效八进制数值————解析为8
十六进制
十六进制字面值的前两位必须是0x,后跟任何十六进制数字(0~9 和 A~F)其中 A~F阔以大写,也可以小写
var num = 0xA; //十六进制的10 var num = 0x1f; //十六进制的31
浮点数值
浮点数值最高精度为17位小数
var num = 0.1; var num = .1 ; //解析为0.1————有效,但不推荐 var num = 1. ; //解析为 1
对于极大或者极小的数值,可以用e表示法(科学计数法)表示
其中e可大写也可小写
var num = 3.21e4 //等于32100 var num = 3.14e-4 //等于0.000314
IEE754数值的浮点计算的通病 : 例:0.1 + 0.2 = 0.30000000000000004
数值范围
Infinity (正无穷) -Infinity (负无穷)
isFinite()函数:这个函数会在参数位于最大和最小数之间返回true
数值转换
number的数据类型转换 Number()、parseInt()、parseFloat()
Number()
parseInt()
parseFloat()
string
undefined
undefined即一个特殊的值,当一个变量声明但未初始化时,就会被赋予undefined值
null
当一个变量是为了保存一个对象,但没办法立即初始化的时候,应该为之分配一个null 值
boolean
boolean的数据类型转换
object
5种基本的数据类型以外,都是对象,比如数组,函数等。
javascript的运算符
看一看
+Number() !!(Boolean()
javascript 函数
函数的含义
类似于Java中的方法,是完成特定任务的代码语句块
传统JavaScript函数的两种写法
函数声明提升
1.函数声明提升:定义式函数会预加载,函数的调用在函数定义前和函数定义后都可以。
2.变量式或匿名式,函数调用必须在函数声明之后,否则提示”×× is not a function”
B
变量声明“提升”
javascript的函数定义有个特点,它会先扫描整个函数体的语句,把所有变量的声明“提升”到函数顶部。
变量的作用域
1.全局变量指在函数外定义的变量;局部变量指在函数内定义的变量。
2.使用范围:全局变量在函数内外均可使用,我们叫全局作用域;局部变量只能在函数内使用,叫局部作用域,也可以叫函数作用域。
3.生命周期:全局变量随网页关闭而消失;局部变量在函数执行完成后消失。
另类的全局变量
*只要省略了var关键字,该变量将被认为是全局变量。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hhinQ2eg-1631873094821)(javascript函数.assets/image-20210322162305275.png)]
模拟真题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFDg1QE1-1631873094822)(javascript函数.assets/image-20210322162410370.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3uBtn4U-1631873094823)(javascript函数.assets/image-20210322162432221.png)]
B B
函数变种
1.IIFE:Immediately Invoked Function Expression,意为立即调用的函数表达式,也就是说,声明函数的同时立即调用这个函数。
2.利用匿名函数,减少全局变量的使用,避免“污染”全局作用域
arguments对象
随意的参数
js函数定义时,参数是没有类型声明的,甚至名字还可以重复。
js函数调用时,实参“随意”到根本不关心定义时的形参长什么样,不限制个数,也可以没有;不限制类型,什么都可以。
严格模式 " use strict "
严格模式的作用
1.消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
2.消除代码运行的一些不安全之处,保证代码运行的安全;
3.提高编译器效率,增加运行速度;
4.为未来新版本的Javascript做好铺垫。