分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

js ?数据类型的初步理解

发布时间:2023-09-06 01:18责任编辑:顾先生关键词:js数据类型

1、js中的类型

字符串、数字、布尔、数组、对象、Null、Undefined

①基本数据类型

null、undefined、boolean、number、string

console.log(typeof 1);//number ???console.log(typeof "a");//string ???console.log(typeof null);//object ???console.log(typeof undefined);//undefined ???????console.log(typeof true);//boolean

但是 typeof null  的返回值却是 object ,js中定义的null 是一个特殊的对象。更确切的说,null是一个空对象的指针,指向一个空对象。以此来和undefined区分开。

为了便于操作基本类型值,ECMAScript还提供了三个特殊的引用类型:Boolean、Number和String,标准库提供了构造函数来封装布尔值、数字和字符串作为对象。这些类型与其他引用类型相似,同时也具有与各自的基本包装类型相应的特殊行为。实际上,每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。

1
2
3
var s1 = "some text";
var s2 = s1.substring(2);
var s3 = new String("some text");

但是不同于原始的字符串,String对象是一个真正的对象。

1
2
typeof s1; //"string"
typeof s3; //"object"

这个例子中的变量s1包含一个字符串,字符串当然是基本类型值。而下一行调用了s1的substring()方法,并将返回的结果保存在s2中。我们知道,基本类型值不是对象,因此从逻辑上讲,它们不应该有方法(但是它们确实有方法)。其实,为了让我们实现这种直观的操作,后台已经自动完成了一系列的处理。当第二行代码访问s1时,访问过程处于一种读取模式,也就是从内存中读取这个字符串的值。而在读取模式中访问字符串时,后台都会自动完成下列处理:

(1)创建String类型的一个实例。

(2)在实例上调用指定方法。

(3)销毁这个实例。

特点是:

基本数据类型的值是不能影响其他值改变的。

//传递基本类型时,实参传入的是该元素的一个副本,该元素本身并不变化。 ???var a = true;//boolean ???function arr(argument) { ???????argument = false; ???????console.log(argument); ???} ???arr(a);//false ???console.log(a);//true ???var b = 1;//number ???function num(argument){ ???????argument = argument-1; ???????console.log(argument); ???} ???num(b);//0 ???console.log(b);//1 ???var c = undefined; ???function und(argument){ ???????argument = 1; ???} ???und(c);//1 ???console.log(c);//undefined ???var d = "asdf";//string ???function str(argument){ ???????argument = argument.slice(1,2); ???????console.log(argument); ???} ???str(d);//s ???console.log(d);//asdf

②引用类型。

引用类型通常叫做类(class)。

object、array。

引用类型的值存储在 内存中的栈区和堆区。

var  a = {}.  var b=a;

赋值给b的实质上堆区的一个指针,指向a对象的值。

所以,当a的值改变时,b的值也会随之改变。

var e = {};//obiect ????var f = e; ???function obj(argument){ ???????argument.name = "onject"; ???????console.log(e.name); ???} ???obj(e);//onject ???console.log(e.name);//onject ???console.log(f.name);//onject

js ?数据类型的初步理解

原文地址:http://www.cnblogs.com/RoadAspenBK/p/7698840.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved