大家好,我是阿赵。继续学习JavaScript,这次来学习的是变量、常量和数据类型。
一、 变量
变量是在编程里面很经常出现的一个名词了。
1、什么是变量?
变量是计算机存储数据的“容器”,可以理解成是一个盒子。
需要注意的是,变量并不是数据本身,只是一个“容器”。
还有另外一个名词,叫做字面量(Literal),这个应该才是对应的变量的值。
2、 声明变量
语法:let 变量名
比如:
let playerName;
这样就声明了一个叫做playerName的变量。
也可以同时声明多个变量,比如:
let playerName = “阿赵”,age = 18;
这样就可以同时一行里面声明多个变量,用逗号分隔。
3、 let和var的区别
除了用let声明变量,应该还有朋友见过用var来声明变量的,比如刚才的例子,可能会写成:
var playerName;
这样也能声明一个变量。那么let和var之间有什么区别呢?
var:允许重复声明,比如:
<script>
var playerName = "小明";
var playerName = "小红";
alert(playerName);
</script>
显示结果:

let:不允许重复声明变量,否则会报错。比如:
<script>
let playerName = "小明";
let playerName = "小红";
alert(playerName);
</script>
这样写是不允许的,有报错提示:

其实var是早期的声明变量的声明符,在早期的版本是大量的使用的。但由于它存在一些问题,所以不够严谨
比如:
1. 可以先使用再声明。
2. var声明过的变量可以重复声明
3. 比如变量提升、全局变量、没有块级作用域等
后来就出现了let来替代了var,解决了var存在的这些问题。所以从理论上来说,使用let来声明变量,会更严谨。
4、 赋值变量
给变量赋值很简单,就是:
变量名 = 值
=等号就是赋值号。
比如
let playerName = “阿赵”;
这样就把值“阿赵”赋值给了变量playerName了。
5、 变量的本质
变量的本质是内存,程序在内存中申请的一块用于存放数据的空间。用变量名查找到内存中存放数据的空间。
6、 变量的命名规则和规范
1. 规则
规则指的是必须遵守的,如果违反了就会报错
(1) 不能用关键字作为变量名,关节字指的是JavaScript里面已经有含义的单词
(2) 只能用下划线、字母、数字和&组成,且不能用数字开头
(3) 字母严格区分大小写
2. 规范
规范是不一定要遵守的,但一般约定俗成的习惯。
(1) 起名字要有意义
(2) 遵守命名法,比如
驼峰命名法:playerName
或者
匈牙利命名法:m_playerName
或者
下划线命名法:player_name
二、 常量
当某个值永远不会改变时,可以声明为常量。
用const声明。
常量不允许重新赋值,而且声明时必须赋值。
比如
const playerName = “阿赵”;
那么这个playerName就是常量,而且它的值永远都是“阿赵”。
三、 数据类型
JavaScript是弱数据类型,所以并不需要在声明变量或者常量的时候就指定数据类型,而是在赋值之后才知道数据的类型。
1、数组类型分类
1.基础类型
number:数字型
string:字符串型
boolean:布尔型
undefined:未定义类型
null:空类型
2.引用类型
object:对象类型
2、undefined和null的区别
当变量只声明但不赋值的时候,默认值是undefined,而null是需要主动赋值的。
比如:
let obj = null;
然后2者在使用上也有区别:
undefined + 1 = NaN
null+1 = 1
3、 检测数据类型
使用typeof可以检测数据的类型,比如:
<script>
let a = 10;
let b = "10";
let c = true;
console.log(`a的类型是${typeof a}`);
console.log(`b的类型是${typeof b}`);
console.log(`c的类型是${typeof c}`);
</script>
运行的结果:

4、 类型转换
使用表单、prompt获取的数据,默认都是字符串,所以需要转换成其他我们需要的类型。
1. 隐式转换
系统内部自动将数据转换。
规则:
+号两边只要有一个是字符串,会把另外一个也转成字符串
除了+以外的算术运算符,比如-*/都会把数据转成数字型。
优点:不用人工干预,自动转换
缺点:转换不明确,容易出现意料以外的情况。
2. 显式转换
转换成数据型:
Number(数据):转换成数字,如果不能转换,则返回NaN
parseInt(数据):转换的时候只保留整数
parseFloat(数据):转换的时候可保留小数。
显式转换的优点是明确,可控性强。

764

被折叠的 条评论
为什么被折叠?



