变量

变量,是指没有固定的值,可以改变的数。

  • 例如人的岁数是不停变化的,因此它就是一个变量.人的拥有的金钱也是不一定的,因此它也是个变量,人的身高,体重,朋友个数这些都是个变量

变量以非数字的符号来表达,一般用拉丁字母

  • 例如人的英文名是可以更改的
  • 人的国籍,班级,学校

弱类型

由于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的时候,它会有两种含义

  1. 将变量存储的值清空
  2. 表示变量将会接收对象作为值进行存储
//清空
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

其它数据类型转布尔类型

在做逻辑判断的时候,其他值也可以转换成布尔值

  • 字符串转布尔值
    1. 所有非空字符串会隐式转换成 true
    2. 空字符串隐式转换为 false

示例

if("123"){
    console.log("true");
}else{
    console.log("False);
}
  • 数字转布尔值
    1. 非0数字,隐式转换成true,包括负数
    2. 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

results matching ""

    No results matching ""