在JS语法中,ESMAScript的一切包括变量,函数名,操作符都区分大小写。而标识符(就是变量,函数,属性的名称)的第一个字符必须是字母,下划线(_)或美元符号($),其他的字符可以是字母,下划线(_)或美元符号($)或数字。这些标识符采用驼峰法格式。
ES中的变量是松散型的,就是说变量可以用来保存任何类型的数据。比如:
有一点必须注意,就是:用var操作符定义的变量将成为定义该变量的作用域中的局部变量。就是说如果在函数中使用了var定义一个变量,那么该变量在退出函数时候将会被销毁。
一下就是一个例子:
输出结果显示:
上面例子可以知道,message已经销毁,出错。
如果去掉var,这时候,message就是一个全局变量:
输出结果:
只需要执行一次test(),这个变量就有了定义,可以在函数外部的任何地方访问到。
但是这种方法并不推荐:因为在局部作用域定义的全局变量很难维护。’
小知识点:
还有一种情况,就是
这种情况下,也是报错的,需要注意。
2.数据类型
JS中有5种基本数据类型(string,number,boolean,null,undefined)还有一种object类型。在这里,我们重点讲下undefined的类型和null类型
undefined的值就一个,即特殊的undefined。在使用var声明变量但没有加以初始化的情况下,这个变量的值就是undefined。
在未经初始化的情况下,变量的值会默认就是undefined。
还有一种情况:
执行后发现alert(age)出现错误:
但是执行typeof命令后,又有区别:
两个值都是undefined:官方的解释是:
null的话,从逻辑角度而言,null表示一个空对象指针,这也是使用typeof得到“object”的原因。后一章会有详细讲解null和undefined的区别。本文不在细说了。
boolean值有true和false两种。在这里需要知道数据类型之间的转化,对任何数据类型之间的转化,可以调用Boolean函数。
针对各类数据之间的转化规则,可以参考如下:
浮点数
浮点数的精度是17位小数,0.1+0.2不等于0.3这个要记住
NAN
NAN是一个特殊的数值。它有两个特点,1.它与任何值不相等,甚至包括自身;2.任何涉及NaN的操作如NaN/10都会返回NaN.
isNaN可以帮我们判断一个传入的参数是否“不是数值”,在接受一个值后,会尝试将其转化为数值,在这里记住记住isNaN的应用: