字面量
字面量就是一个值,比如变量的值或者常量的值,如字母、字符串、数字······
变量
定义完成后,可以修改的数据
<script>
//定义变量
var a;
var b;
var c,d;
//变量初始化
a=10;
b='哈哈哈哈';
//定义时同时赋值
var x=90;
</script>
变量的默认值:没有给变量赋值时,变量里面存储的是undefined
内存中的表现方式:var a=3;
1.申请一块内存空间,名字叫做a
2.向此内存空间里赋值
变量的命名规则和规范
规则:必须遵守
规范:建议遵守
1.命名规则
由字母、数字、下划线、$符号组成,不能以数字开头,不能是关键字和保留字,如:if、for、break······,要区分大小写。
2.命名规范
变量的名称最好做到见名知意并且遵守驼峰命名法。
驼峰命名法:首字母小写,后面单词的首字母大写。如:myName
题
不使用中间变量,交换两个数值变量的值
<script>//利用运算
var a1 = 6, a2 = 7;
a1 = a1 + a2 ;
a2 = a1 - a2 ;
a1 = a1 - a2 ;
document.write(a1 + '<br>');
document.write(a2 + '<br>');
</script>
常量
定义完成后,固定且不能改变的数据
在ES6之前并没有声明常量的方法,在ES6中新增加了const来定义常量;建议常量的命名全部大写,如果用多个单词构成,可以用下划线隔开
常量必须要有初始值,且被定义之后不能修改值
//常量必须要有初始值,且被定义之后不能修改值
const CL = 'hhhh';
document.write(CL);
常量和字面量的区别:常量是存储数据的容器;字面量是等号右侧的值。
数据类型查看:typeof
var z = NaN;
document.write(typeof z);//输出为number类型
数据类型
简单的数据类型:
1.Number ------------数字类型
(1)由于内存的限制,ECMAScript并不能保存世界上所有的数值
最大值:Number.MAX_VALUE
最小值:Number.MIN_VALUE
无穷大:Infinity(Number.MAX_VALUE + Number.MAX_VALUE ')
无穷小:-Infinity
(2)非法数字(Not A Numebr)
也就是非数值(Not a Number),NaN 属性用于引用特殊的非数字值,该属性指定的并不是不合法的数字。
JS中对数值计算时没有结果返回,则返回NaN
var z = NaN;
document.write(z + '<br>');
document.write(typeof z);//输出为number类型
(3)isNaN() 函数用于检查其参数是否是非数字值
如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
document.write(isNaN(1) + '<br>');//是数字,返回false
document.write(isNaN('fff')); //不是数字,返回true
document.write(isNaN("25/12")+ "<br>");//不是数字,返回true
(4)在整数运算时不会出现差错,但是在浮点数的运算时会丢失精度,会得到一个不准确的计算结果,在后面的学习中会解决这个问题(也可以用给它规定保留几位小数的方法来解决)
2.String ---------------字符串类型
(1)由单引号或双引号或反单引号括起
var str1 = 'hh'; //单引号
var str2 = "hhh"; //双引号
var str3 = `hhhhhh`; //反单引号
(2)相同引号不可以嵌套,不同引号可以嵌套
var str1 = 'hh"呵呵呵呵"'; //对
var str2 = "hhh"哈哈哈""; //错误
//可以使用反斜杠 (\) 来转义 "哈哈哈" 字符串中的双引号,如下:
var str3 = "hhh\"哈哈哈\""; //正确
(3)给变量加上引号,那么变量将变为一个字面量
var str1 = 'hh';
document.write(str1 + '<br>'); //输出的是 hh
document.write('str1'); //输出的是 str1,字面量
<br>
换行
3.Boolean------------ 布尔类型
(1)布尔类型也被称为逻辑值类型或者真假值类型,取值只有true和false
(2)任何非零数值都是true,只有0和NaN是false;
任何非空字符串都是true,只有空字符串是false;
任何对象都是true,只有null和undefined是false
(3)将其他类型转换成布尔类型:Boolean()
var bool1 = Boolean(1); //把1转换成true
document.write(bool1 + '<br>'); //输出为true
4.Undefined
(1)Undefined是一种比较特殊的类型,表示变量未赋值,它只有一个值是undefined
(2)undefined是Undefined类型的字面量
var s;
document.write(typeof s +'<br>'); //输出为undefined
5.Null
(1)Null是一种比较特殊的类型,它只有一个值是null
(2)null表示的是一个空的对象,所以使用typeof检查null会返回一个object
var null1 = null; //空对象
document.write(typeof null1 + '<br>'); //返回object
(3)undefined值实际上是由null值衍生出来的,所以比较undefined和null是否相等,会返回true
var str4 = null, str5 = undefined;
document.write(str4 == str5); //==,值比较,相等为true
document.write('<br>');
document.write(str4 === str5 + '<br>'); //===(全等于),值和类型比较,全相等为true
引用(复杂)数据类型:Obiect(还没学)
题
var str6 = [], str7 = ![];
//str6是object类型,且没有值;str7是布尔类型,且值为false
document.write(str6 == str7);
//str6没有值就相当于布尔类型里的false,所以这里输出为true