Javascript代码可以对数据按照一定的语法进行操作,所以javascript设计规范中规定了两种数据类型:

第一种是存储数据的类别,具体为:

1. Undefined,

Undefined类型只有一个值,任何没有被赋值的变量的值都是undefined

如图:我们打开一个node.exe的新窗口:

2. Null

Null类型只有一个值,就是null

typeof null //"object",chrome浏览器对这行代码的实现是把null作为Object类

3. Boolean,

Boolean类型有两个值,为true和false,分别对应真和假

var b = true,c = false;

console.log(Boolean()) // false

console.log(Boolean(false)) // false

console.log(Boolean(true)) // true

console.log(new Boolean(true)) //返回Boolean包装对象,是object类型

typeof(new Boolean()) // "object"

4. String,

String类型指的是由0个或多个无符号整型字符组成的字符串类型,由双引号和单引号

console.log('123') //字符串类型 ‘123“

console.log("abc") //字符串类型 ‘abc“

console.log(String('123')) //字符串类型 ‘abc“

console.log(new String("abc")) //字符串的包装对象,是Object类型

typeof(new String("abc")) //"object"

typeof("abc") //"string"

5. Number,

var i = 1;

i.constructor //在chrome中的返回值为function Number() { [native code] }

6. Object.

Object类型是javascript中的对象类型,有函数对象Function,数组对象Array,日期Date对象等一系列Object类型的对象

根据面向对象的要求,Object类型在javascript语言的设计上应该要保证Object不仅是一系列属性和方法的集合,

同时还要保证它和其他object的各种关系的实现,比如继承

Object类型在语言设计的角度存在2种类型的成员:

1. javascript语言中可见属性和方法

2. javascript设计规定的内部属性

如图:

o对象中有我们定义的name属性,函数getName,还有一个属性__proto__,且是Object对象的引用

这里__proto__属于内部属性,各个浏览器实现javascript语言规范实现有区别,并不是每个浏览器都可见

其中设计规定的内部属性分为两种

1. 所有Object都共同存在的

2. 仅仅在某些类中存在的

注:这些属性不需要掌握只是为后面对javascript的理解提供理论依据

Typeof操作符例子附图:

第二种为语义描述类别,不会直接出现在javascript代码中,知道即可

1. Reference(引用)

Reference类型的定义是:一个申明名称的绑定。顾名思义,它的类型中至少有,而且必须有两个属性:名称和绑定值

绑定的类型能且只能是上文第一种类别提到的6类,外加第二种语义类型中的environment record类型

通过使用关键字var定义一个javascript变量,从而得到一个Reference(引用),如下

var ref; //其中ref就是一个引用类型,有两个属性,第一个是引用名称为字符串ref,另一个是默认绑定的值undefined

ref = {} //将{}构造的对象的“地址”绑定到aa的绑定值属性上,即将undefined对象地址替换为{}对象地址

其中引号中的地址有可能并不是地址,用地址只是为了形象的说明它的实现方式

如果说所有的设计原则,设计模式都体现在两个字“间接”上,那么引用就是面向对象,甚至任何高级语言内置的第一个抽象方式

我们对绑定对象的Reference的任何操作都直接作用在了该对象上,而不是直接对该对象进行操作

2. List,

3. Completion,

4. Property

5. Descriptor,

6. Property Identifier,

7. Lexical Environment,

8. Environment Record.

转载于:https://www.cnblogs.com/Home4Bear/p/3384533.html

Javascript心得(一) Javascript数据类型相关推荐

  1. JavaScript中的基本数据类型与引用数据类型

    JavaScript中的基本数据类型与引用数据类型 转载自:https://www.cnblogs.com/c2016c/articles/9328725.html 1.栈(stack)和堆(heap ...

  2. Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型

    目录 一.基本数据类型 (一)String类型 (二)Number类型 1.字面量 2.无穷大 3.非数值 (三)Boollean类型 (四)Undefined类型和Null类型 二.引用数据类型 ( ...

  3. JavaScript入门(part4)--简单数据类型

    学习笔记,仅供参考,有错必纠 参考自:pink老师教案 文章目录 JavaScript入门 简单数据类型 数字型number 数字型范围 数字型三个特殊值 函数isNaN 字符串型string 布尔型 ...

  4. JavaScript的检测及其数据类型

    一.JavaScript有几种类型的值? Javascript有两种数据类型,分别是基本数据类型和引用数据类型.其中基本数据类型包括Undefined.Null.Boolean.Number.Stri ...

  5. ArcGIS API for JavaScript心得体验

    首发GIS派:ArcGIS API for JavaScript心得体验 学习和使用ArcGIS API for JavaScript开发差不多有两年了吧,跌跌撞撞断断续续也做了几个小项目,学习之路相 ...

  6. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  7. JavaScript简介及JavaScript中的关键保留字、变量和数据类型

    1. JavaScript简介 JavaScript 诞生于 1995 年.它当时的目的是为了进行表单输入的验证.因为在 JavaScript 问世之前,表单的验证都是通过服务器端验证的.而当时都是电 ...

  8. JavaScript基础第01天笔记——编程语言、计算机基础、JavaScript注释、JavaScript输入输出语句、变量的概念、变量的使用、数据类型、解释型语言和编译型语言、关键字和保留字

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

  9. JavaScript 逆向 ( 一 ) --- JavaScript 语法基础

    js 逆向:https://www.cnblogs.com/wuxianyu/category/1940304.html js逆向2:https://www.cnblogs.com/wuxianyu/ ...

  10. JavaScript(三)—— JavaScript 函数/JavaScript 作用域/JavaScript 预解析/JavaScript 对象

    本篇为 JavaScript 系列笔记第三篇,将陆续更新 JavaScript(一)-- 初识JavaScript/注释/输入输出语句/变量/数据类型 JavaScript(二)-- JavaScri ...

最新文章

  1. 参加web前端培训要学会哪些技能
  2. synchronized 与 Reentrant均为可重入锁 区别后者比前者增加了长时等待可中断 设置是否公平锁 绑定多个条件
  3. js截屏 video_canvas与html5实现视频截图功能
  4. python将一组数据转化为列表_python如何将一个全部为int的列表,转化为全部为str的列表...
  5. FairMOT实时多目标跟踪
  6. protel PCB布线精华文章
  7. 汽车电子专业知识篇(三十二)-整车电控系统及架构设计技术
  8. 计算机组成原理输入实验报告,计算机组成原理实验报告
  9. python旋转数组_Python3实现旋转数组的3种算法
  10. 小程序picker组件中的(普通选择器:mode = selector)
  11. Netty服务器无限循环给客户端发送数据
  12. wacom怎么调压感_wacom手绘板_wacom手绘板的钢笔压力怎么设置?
  13. 征集对智能视觉组eIQ的使用反馈
  14. IDC机房的网络防火墙设备
  15. Win11任务栏太宽了怎么办?教你一招快速修改任务栏大小
  16. KL散度和交叉熵的对比介绍
  17. APP接入QQ登陆功能报错“该应用非官方正版应用,请到......100044”的几种错误
  18. 集合的运算(C++单链表实现)
  19. java基础讲义03
  20. Django by Example·第二章|Enhancing Your Blog with Advanced Features(为博客系统添加高级功能)@笔记

热门文章

  1. LINUX上,2080/1080卡不要混插
  2. lambda表达式_C++11的lambda表达式递归
  3. java中quickstart_Beam编程系列之Java SDK Quickstart(官网的推荐步骤)
  4. python json解释器_Python JSON
  5. php mysql join查询结果_PHP mySQL表JOIN查询 - 最有效的方法?
  6. c语言井字棋二维数组,【C语言】简单实现三子棋(井字棋)小游戏
  7. android多屏互动方案,基于Android的DLNA多屏互动系统的设计与开发
  8. java批处理框架 pdf_史上最轻松入门之Spring Batch - 轻量级批处理框架实践
  9. php禁止外部域名请求,php-阻止来自其他域的请求
  10. kafka报错 WARN Session 0x0 for server null, unexpected error, closing socket connection