JavaScript 变量

100 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 2 天,点击查看活动详情

变量

基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6),这些类型可以直接操作保存在变量中的实际值。

引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象)

JS 是一门弱类型语言,在定义变量的时候,所有的数据类型都用 var。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
  var x=10;
  var b="itbbfx";
  alert(x);
  alert(b);
</script>
<body>
    <h1 onclick="alert('JS 变量');">请点击我!</h1>
</body>

</html>

定义声明变量的时候,可以声明一个,也可以声明。只要是数字就用 number,它不区分数值型,整型数字和浮点型数据,所有的数字都会采用 64 浮点格式存储,就类似于 double 格式。

注意 :在js中浮点数的精度是17位,计算是二进制的计算数据,所以得到的不是整数。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
  var x=0.1;
  var y=0.2;
  alert(x+y) //0.30000000000000004
</script>
<body>
    <h1 onclick="alert('JS 变量 number');">请点击我!</h1>
</body>

</html>

image.png

String:首尾用单引号和双引号都是字符串,没有字符类型,全都是字符串类型。因此使用双引号声明可以,使用用单引号声明也没问题。但是如果有特殊字符,需要进行转译。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
  var str="itbbfx\"学习资料网";
  alert(str)
</script>
<body>
    <h1 onclick="alert('JS 变量 number');">请点击我!</h1>
</body>

</html>

特点:

  • 字符串的单引号和双引号作用效果一样;

  • 字符串有 length 属性,可以取得字符串的长度;

  • 字符串的值是不可变的,所以很多的字符串的 api 不会改变原字符串值。

Boolean:布尔类型该类型只有两个值:true、false,也用 1 和 0 来辨别。实际运算中它会用 true 是 1 ,false 是 0。

出现场景:1、条件语句导致执行的隐士类转换;2、字面量或变量定义。

自动类型转换

数据转换为字符串,例如,10+'a'->10a.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
    var a=10+'a';
    console.log(a);
</script>
<body>
   
</body>

</html>

image.png

运行结果输出是 10, 也就是在自动类型转换时,将数字转成字符串。

布尔类型转换数值,例如 true+10->11


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>

    var b=true+10;
    console.log(b);
</script>
<body>
   
</body>

</html>

image.png

在转换过程,true 转换 1,因此结果是 11。

布尔类型转换为字符串,例如 true+'itbbfx'->trueitbbfx。

image.png

数据类型转换函数

parseInt:强制转换为整数。如果不能强转,返回结果 NaN。NaN 代表的是非数字值的特殊值,这个属性用来指某个值不是数字。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
    var x="3.32";
    console.log(parseInt(x));
</script>
<body>
   
</body>

</html>

image.png

parseFloat:强制转换为浮点数,如果不能强转,返回结果 NaN。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
    
    var x="3.32";
    console.log(parseFloat(x));
</script>
<body>
   
</body>

</html>

image.png

typeof:查询数值当前类型,返回 string、numbber、boolean、object。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js 三种使用方式</title>

</head>
<script>
    
    var x="3.32";
    console.log(x+"|"+typeof(x));
</script>
<body>
   
</body>

</html>

image.png

Null 空对象指针类型

如果定了一个对象,初始化可以为null,因为null的基本类型是Null,在if语句中默认转化为false,在和数值计算默认为 0。

出现场景:对象不存在.

Undefined

申明了变量但是没有初始化,默认为 undefined,在 if 语句中默认转化为 false。

undefined:表示‘缺少值’,就是应该有一个值,但是没有定义,以下用法是典型的出现 undefined 情况:

  • 变量被申明,等于 undefined;
  • 调用函数时,应该提供的参数没有提供,该参数等于 undefined;
  • 对象没有赋值的属性,该属性值为 undefined;
  • 函数没有返回值,默认返回 undefined;