- 变量
- 弱类型
- var
- 变量规则
- 数据类型
- typeof
- 数字类型 Number
- 字符串类型 String
- 布尔类型 Boolean
- Undefined
- Null
- Object 类型
- 数据类型转换
- 隐式转换
变量
变量,是指没有固定的值,可以改变的数。
- 例如人的岁数是不停变化的,因此它就是一个变量.人的拥有的金钱也是不一定的,因此它也是个变量,人的身高,体重,朋友个数这些都是个变量
变量以非数字的符号来表达,一般用拉丁字母
- 例如人的英文名是可以更改的
- 人的国籍,班级,学校
弱类型
由于javascript是弱类型语言,本身对于变量的数据类型并没有强制要求,例如,你定义了一个变量 a ,而这个a存储的值可以使任意类型,例如数字,文字,日期等等.
var
在javascript中,定义变量的方式如下
var 变量的名称 = 变量的值
var 身高 = 170;
var 体重 = 140;
var 姓名 = "zmt";
var 公司 = "xyd";
等等
变量规则
- 名称可包含字母、数字、下划线和美元符号
- 名称必须以字母开头
- 名称也可以 $ 和 _ 开头
- 名称对大小写敏感(y 和 Y 是不同的变量)
- 保留字(比如 JavaScript 的关键词)无法用作变量名称
- 见名知意
示例
var height = 170;
var weight = 140;
var name = "zmt";
var compnay = "xyd"
数据类型
虽然说javascript是弱类型语言,变量可以存储任意类型的数据.但是数据之间还是有区别的.尤其是在使用各种数据进行运算的时候,不同类型的数据进行运算,可能得出不一样的结果.因此我们需要了解各种数据类型,以及数据类型之间的转换
typeof
我们可以使用typeof来判断数据的类型.稍后我们会在学习过程中具体用到
数字类型 Number
数字类型.我们平常使用用的数字都是数字类型.但是在JS中,除了数字是数字类型之外,还有NaN也是数字类型.
示例
var age = 10;
var price = 112;
字符串类型 String
字符串或串(String)是由零个或多个字符组成的有限序列.在javascript中,我们可以用双引号或者单引号将多个字符包裹起来,形成一个字符串. 例如:
var str = "hello world";
var st2 = "hello world";
注意: 单引号和双引号完全等同,但是如果希望在其他字符串中包含一个用双引号包裹的子串,则需要慎重使用双引号或者单引号了.
例如,在线面例子中我们希望在字符串中的超人,出现"超人"的效果,可以在单引号组成的字符串里用双引号包裹子串
var str = '您好!我是"超人"'
console.log(str); //输出结果 您好!我是"超人"
同理,如果我们希望在字符串中出现 '超人' 的效果,则可以在双引号中使用单引号来包裹子串
var str = "您好!我是'万磁王'";
console.log(str); //输出结果您好!我是'万磁王'
布尔类型 Boolean
布尔类型的数据,常用于逻辑判断中,它只有两个值 真(true)和假(false)
var x=true;
var y=false;
Undefined
Undefined表示变量不包含之,常常会在我们定义了变量,但是没有给变量赋值的情况下出现
var name;
console.log(name);//输出结果为undefined
注意:JS在声明变量时,如果不给变量赋值,默认值就是undefined,因此我们无需通过以下方式进行初始化
var name = undefined; //多此一举
Null
当一个变量等于null的时候,它会有两种含义
- 将变量存储的值清空
- 表示变量将会接收对象作为值进行存储
//清空
var name = "javascript";
name = null; //清空了name的数据,
Object 类型
可称之为对象类型,也可以成为引用类型.这部分内容我们会单独在对象章节中讲解.
数据类型转换
数据类型转换有两种方式
- 隐式转换,由系统自动完成转换
- 强制转换,由程序员编写代码转换
隐式转换
其它数据类型转换成字符串
所有其它数据类型和字符串相加,得到结果都是字符串
数字转字符串
var str = '1'; //定义一个空字符串 var num = 2; //定义个数字 console.log(str+num);//输出结果是12,而不是3
undefined和null转字符串 ```javascript var str = '1'; var un; console.log(str+un); //1undefined
var nu = null; console.log(str+nu);//1null
- 布尔类型转字符串
```javascript
var str = '1';
var x = true;
console.log(str+x); //输出结果1true
var y = false;
console.log(str+y);//输出结果1false
- 引用类型转换成字符串
var str = '1';
var obj = {};
console.log(str+obj); //输出结果 1[Object object]
其他数据类型转换成数字
- 字符串转数字 当纯数字字符串和数字进行 减.乘,除,取余运算的时候,会被隐式转换成数字进行运算
var num = 1;
var str = "123";
console.log(str-num); //输出结果122
console.log(str*num); //输出结果123
console.log(str/num); //输出结果123
- 布尔类型转数字 布尔类型只有两个值true和false,当布尔值和数字进行运算的时候, true隐式转换为1 false 饮食转换0
var num = 1;
var trueValue = true;
var falseValue = false;
console.log(num+trueValue);
console.log(num+false);
var rs = num+trueValue;
console.log(typeof rs);
undefined undefined和数字进行运算时,得到的结果都是 NaN(not a number)
null null和数字进行运算时,会隐式转换成0
其它数据类型转布尔类型
在做逻辑判断的时候,其他值也可以转换成布尔值
- 字符串转布尔值
- 所有非空字符串会隐式转换成 true
- 空字符串隐式转换为 false
示例
if("123"){
console.log("true");
}else{
console.log("False);
}
- 数字转布尔值
- 非0数字,隐式转换成true,包括负数
- 0 隐式转换为false
if(1){
console.log("true");
}else{
console.log("False);
}
- undefined和null
- undefined和null隐式转换为false
if(undefined){
console.log("true");
}else{
console.log("false");
}
- 对象隐式转换为 true