javascript中的数据类型

javascript跟很多语言相比,它有一个很突出的特点,它是一门弱类型语言。对于变量的声明,它不需要像C,或者java语言那样,要给定类型声明。比如我们定义一个整型变量a,在绝多数的语言都是这样声明的:int a,而在javascript 只需要使用关键字,var 或者let 声明即可:var a,let a。今天,我们来探讨一下Javascript的数据类型。

1.类型检测

在Javascript中可以使用typeof 和 instanceof 来检测数据是那种类型。
typeof

var test = 1;
console.log(typeof test);
//输出:number

instanceof
instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

function Hd(){
    console.log('hello');
}
var obj = new Hd();
console.log(obj instanceof Hd);
console.log(obj instanceof Object);
//输出:true true

2. 值类型和引用类型的区别

在javascript数据可分为值类型和引用类型,值类型变量直接保存的是具体的数值,而变量类型保存的数据的地址,这里的地址类似C语言中的指针,我们用下面的例子来看看他们之间的区别。

var num1 = 1;
var num2 = num1;
num2 = 2;
var obj1 = {
    name:'hello'
}
var obj2 = obj1;
obj2.name = 'js';
console.log(num1,num2);
console.log(obj1,obj2);
输出:1 2{name:'js'} {name:'js'}

string(值类型)

string 类型在JavaScript是使用较为广泛的数据类型。
string 类型的声明

字面量声明:
var str = 'hello js';
对象声明:
var str = new String('hello js');

转义字符

符号含义
\t制表符
\n换行
\ \斜杆符号
单引号
"双引号

模板字面量
使用模板字面量的好处是可以引入变量和表达式,同时字面量可以保存换行等原有的格式。

var str = "world";
var str1 = `hello ${str}
hello js
`
输出:hello world
	   hello js

类型转换
将字符串转化为数组

var str = 'hellojs';
console.log(str.split(''));
输出: ['h', 'e', 'l', 'l', 'o', 'j', 's']

Boolean(值类型)

boolean类型的声明

对象声明:
var bool = new Boolean(true);
字面量声明:
var bool = true;

隐式转换(重要)

数据类型truefalse
String非空字符串空字符串
Number非0的数值0、NaN
Array数组不参与比较时参与比较的空数组

Numer(值类型)

对象声明                                 
var num = new Number(1);             
字面量声明:             
var num = 1;                                          

Object(引用类型)

较为复杂以后再进行探究。

null ,undefined,NaN的区别

当我们声明一个值类型的变量没给它赋值时,系统会自动给它赋一个undefined,无需我们手动赋值,我们应该避免手动给一个变量赋予undefined。null是当我们想声明一个对象但是又不想给它赋初值的时候的一个占位符,和undefined不同的是我们要手动赋予null,系统不会自动赋值null,这也区分引用类型和值类型的一种手段。NaN表示当计算不合法时返回的一个值,可以当作是一种错误处理机制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值