Javascript基础之(数据类型)

本文详细介绍了JavaScript的基础数据类型,包括数字型、字符串、布尔型、undefined和null、Symbol、对象、数组和函数。讲解了转义字符、字符串访问、数字转换、类型检查运算符typeof及不同类型转换的方法,如用"+"连接符转换、toString()、Number()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、数据类型

1、数字型(Number)

2、字符串(String)

(1)、转义字符

(2)、字符串的长度

(3)、字符串的访问

 (4)、字符串的拼接

3、布尔型(Boolean)

4、undefined和null

5、Symbol类型

6、对象(Object)

7、数组(Array)

8、函数(Function)

二、类型检查运算符:typeof

三、类型转换

1、转换为字符串

(1)、用"+"连接符转换

(2)、调用toString()函数

(3)、String类进行转换

2、转换为数字

 (1)将数字字符串转换为整数:parseInt()

 (2)将数字字符串转换为浮点数(小数):parseFloat()

     (3)使用Number()转换

3、转换为布尔值


一、数据类型

  • 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
  • 引用数据类型:对象(Object)、数组(Array)、函数(Function)。

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

1、数字型(Number)

有整数:可以通过十进制,八进制,十六进制的字面值来表示。

有浮点数:该数值中必须包含一个小数点,且小数点后必须有一位数字。

var a = 10; //不需要引号

 数字型的取值范围:
    
        最大值:Number.MAX_VALUE
        
        最小值:Number.MIN_VALUE

特殊:NaN (Number的一种):Not a Number
       isNaN(args):判断参数args是否是一个数字,若args是数字(包括数字字符串)函数返           回false;若args是非数字,函数返回为true

2、字符串(String)

用单引号或双引号括起来的字符序列。

 var str = "中国人不骗中国人";

   注意:不能出现单、双引号的交叉,因为js无法解析

例如: "红楼梦也叫"石头记""  :字符串 "红楼梦也叫 " 被截断。可以写成"红楼梦也叫'石头记' "

(1)、转义字符

转义字符将特殊字符转换为字符串字符,转义字符 (\) 可以用于转义撇号,换行,引号,等其他特殊字符。

代码输出
\'单引号
\"双引号
\\反斜杠
\n换行
\r回车
\ttab(制表符)
\b退格符
\f换页符

所以我们也可以把上述字符串改为:"红楼梦也叫\"石头记\""

(2)、字符串的长度

当定义一个字符串后,默认带有length属性,表示字符串的长度。

字符串变量.length

eg:

var str = "中国人不骗中国人";
console.log("字符串的长度:" ,str.length);

(3)、字符串的访问

以索引的方式访问。

字符串变量[index]   index必须是0~length-1之间的整数。因为JavaScript 从零计算位置。0 是字符串中的第一个位置,依次排列。

eg:

var str  = new String ("中国人不骗中国人");
console.log("位置:",str.indexOf('国'))
console.log("位置:",str.lastIndexOf('国'))

 (4)、字符串的拼接

  用"+"进行连接。

var a = "你好"
var b = "世界"
console.log(a+b) //显示为:  你好世界

3、布尔型(Boolean)

逻辑型,只有true/false两个值。布尔常用在条件测试中。

4、undefined和null

  • undefined:未定义类型。当一个变量声明后未赋值就是undefined类型。
  • null:空值。可以通过将变量的值设置为 null 来清空变量。

undefined和null的区别是:值相等但是类型不相等。undefined是undefined类型。null是object。

ps:空值和空串的区别

  1. 类型不同   
  • 空值null表示的是一个对象的值,而非一个字符串。
  • 空串""表示的是一个长度为0的空字符串。

所以:null不指向任何对象,相当于没有任何值;而""代表一个长度为0的字符串。

  1. 内存分配不同
  • 表示声明一个字符串对象的引用,但指向为null(未指向任何的内存空间)
  • 表示声明一个字符串类型的引用,其值为""空字符串(指向空字符串的内存空间)

所以:null不分配内存空间;而""会分配内存空间。

举例说明:

var person; // 值是 undefined,类型是 undefined

var person = undefined; // 值是 undefined,类型是 undefined

var person = null; // 值是 null,但是类型仍然是对象(object)

var person = ""; // 值是 "",类型是字符串 (string)

5、Symbol类型

符号 (Symbols) 是 ECMAScript 第 6 版新定义的。符号类型是唯一的并且是不可修改的。

var  s = symbol()

Symbol 函数前不能使用 new 命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象。

Symbol 函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述。

6、对象(Object)

是一组数据功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名(包含空字符串在内的任意字符串)的属性。

对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔 如下:

var car = {type:"porsche", model:"911", color:"white"};

7、数组(Array)

JavaScript 数组用方括号书写。数组的项目由逗号分隔。   eg:

var a = [1,2,3]
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";

8、函数(Function)

二、类型检查运算符:typeof

你可以使用 typeof 操作符来检测变量的数据类型。

eg:

    var t = false
    console.log(typeof t)  //返回类型为boolean
typeof "Bill"                 // 返回 "string"
typeof 3.14                   // 返回 "number"
typeof NaN                    // 返回 "number"
typeof false                  // 返回 "boolean"
typeof [1,2,3,4]              // 返回 "object"
typeof {name:'Bill', age:62}  // 返回 "object"
typeof new Date()             // 返回 "object"
typeof function () {}         // 返回 "function"
typeof myCar                  // 返回 "undefined" *
typeof null                   // 返回 "object"

请注意:

  • NaN 的数据类型是数值
  • 数组的数据类型是对象
  • 日期的数据类型是对象
  • null 的数据类型是对象
  • 未定义变量的数据类型是 undefined
  • 尚未赋值的变量的数据类型也是 undefined

所以无法使用 typeof 去判断 JavaScript 对象是否是数组(或日期)。

三、类型转换

1、转换为字符串

(1)、用"+"连接符转换

var flag = true;
console.log(flag+12); //将true转换为整数的1,输出为13

(2)、调用toString()函数

var t1 = 10;
console.log(t1.toString(16)); //将数值变量t1转换成字符串

A、null和undefined不能转换
              
B、传入一个参数可以将数值型数据转换成对应的数制

        

(3)、String类进行转换

是JavaScript的内置类,可以直接使用。

var str = new String('china');

2、转换为数字

 (1)将数字字符串转换为整数:parseInt()

 var temp = '3.14159';
 var k = parseInt(temp);
 console.log(k); //输出3


 (2)将数字字符串转换为浮点数(小数):parseFloat()


 var temp = '3.14159';
 var k = parseFloat(temp);
 console.log(k);
 console.log(typeof k);

    
 (3)使用Number()转换

 var temp = 'e';
  var t = Number(temp);
  console.log(t); //输出NaN

3、转换为布尔值

    使用Boolean()转换。

     空串('')、0、NaN、null和undefined 转换为false,其他的都转换为true

  var temp = Boolean(NaN)
  console.log(temp)  //打印出来为false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值