第三章 数据类型和值

能够表示并操作的值类型成为数据类型,javascript允许使用3中基本数据类型-数字、文本字符串和布尔值,此外还有两种小数据类型null(空)和undefined(未定义),除了这些以外,还支持复合数据类型--对象(object),js对象分为两种,一种对象表示的是已命名的值的无序集合,另一种表示的是有编号的值的有序集合后者被称为数组,另外还有一种特殊的对象--函数(function),函数是具有可执行代码的对象,可以通过调用函数执行某些操作。此外js还定义了了一些专用对象,这些对象表示的不是新的数据类型,二是对象新的类,例如Date表示日期对象,RegExp表示正则表达式对象,Error。

1.数字

当一个数字直接出现在javascript程序中时,我们称他为数值直接量

  • 整型直接量 :在js中,十进制的证书是一个数字的序列
  • 八进制和十六禁止的直接量:在js中,十六进制直接量开头为“Ox“或者“OX”后加十六进制数字串的直接量,在ECMAScript标准中不支持八进制直接量,但js允许,有些支持,但有些不支持,故不建议使用
  • 浮点型直接量:可以具有小数点,采用的是实数的传统语法,一个实数可以被表示为整数部分后加小数点和小数部分
  • 数字的使用:可以通过算数计算符来进行数字运算的包括加法运算符,减法运算符,乘法运算符,除法运算符
  • 数值转化 : js 可以把数值转换称字符串或者把字符串解析为数值
  • 特殊的数值:无穷大 Infinity, 负无穷大 -Infinity,Nan

2.字符串

由Unicode字符、数字、标点符号等组成的序列

  • 字符串直接量:由单引号或双引号扩起来的Unicode字符序列,其中可含有0个或多个Unicode字符。必须写在一行,否则可能会截断
  • 字符串直接量中的转义序列:反斜线()
  • 字符串的使用:
  • 把数字转成字符串
  • 把字符换转成数字

3.布尔值 :只有两种true和false

  • 布尔值类型转换

4.函数:函数只一个可执行的Javascript代码块。虽然函数只定义一次,但程序中可以多次执行或者调用,可以携带实际参数或形式参数,还能返回一个值表示结果

  • 函数直接量 :funciton
三种定义方式

5.对象:已命名的数据的集合,通常被作为对象的属性来引用。要引用一个对象的属性时,必须引用这个对象,在其后加实心点和者属性名。如果函数值是存储在某个对象的属性中,那么函数通常被称为方法,属性名变成了方法名。对象也可以作为关联数组使用,用封闭的方括号封闭起来,包括所需属性名的字符串。

  • 创建对象
  • 对象字面量
  • 对象转换

6.数组:和对象一样是数值的集合,与对象不通,对象每个数值都有一个名字,数组每个数值都是一个数字或者说是下标(index)

  • 数组创建
  • 数组直接量

7 null :是一个特殊的值,表示“无值”,常常被看作对象类型的特殊之,表示“无对象”

8 undefined: 表示未定义,undefined不同于null,但用==运算两者看作相等,undefined不是Javascript保留字,在ES v3标准规定了名为undefined的全局变量,初始值是undefined

骚操作:

9 Date 对象(第7章详解)

10 正则表达式对象(第11章详解)

11 Error对象(第6章)

12 类型转换小结

13 基本数据类型的包装对象:javascript可以灵活的将一种数据类型的值转换为另一种类型,当我们在对象环境中使用字符串时,javascript会为这个字符换的值内部的创建一个String包装对象,String对象就替代了原始的字符串值,就具有了属性和方法,Number和Boolean也是同样的。

14 对象到基本类型的转换:不管何时非空对象用在布尔环境时都是true,对那些用来表示转换的为false

15 传值和传址:

传值:当一个数据是通过值被操作的,那么关系到的是数据的值,在赋值的过程中,对实际的值制作了一份拷贝,这份拷贝存储到一个变量、对象属性或数组元素中。拷贝的值和原始的值是分别存储的两份完全独立的值。当一份数据通过值传递给一个函数,数据的一份拷贝被传递给这个函数;如果函数修改了这个值,修改只是影响到函数所拥有的该数据的拷贝,而不会影响到原始的数据

传址:数值只有一份真实的拷贝,被操作的是对该值的引用

  • 基础类型和引用类型:基本数据类型(数字和布尔)通过传值来操作,而引用数据类型(对象和数组)靠传址来操作,对于对象和数组是用传值的方式传递的,只不过传递的是这个值的第一个引用,而不是这个本身。
  • 复制和传递字符串
  • 比较字符串:字符串是通过传值来传递的
  • 传值和传址小结

javascript权威指南_重读javascript权威指南(3)相关推荐

  1. javascript中对象_了解JavaScript中的承诺

    javascript中对象 我向您承诺,到本文结束时,您将更好地了解JavaScript. 我与JavaScript有一种"爱与恨"的关系. 但是尽管如此,JavaScript一直 ...

  2. javascript 高级程序设计_所以 JavaScript 到底是什么?我居然懵了????

    前言 引用<JavaScript 高级程序设计第四版>中说的话 --"从简单的输入验证脚本到强大的编程语言,JavaScript 的崛起没有任何人预测到.它很简单,学会用只要几分 ...

  3. javascript单引号_避免JavaScript单文化

    javascript单引号 本文由Tom Greco , Dan Prince和Mallory van Achterberg进行了同行评审. 感谢所有SitePoint的同行评审员使SitePoint ...

  4. javascript 高级程序设计_重读《JavaScript高级程序设计》

    最近自己在休假,打算闭门几天将<JavaScript高级程序设计>(第3版)这本良心教材再回顾一遍.目前自己进入前端领域两年多,现在重读并记录下这本教材的"硬"知识点 ...

  5. app 隐私 自我评估指南_在线隐私入门指南

    app 隐私 自我评估指南 by Iulian Gulea 由Iulian Gulea 在线隐私入门指南 (The Beginner's Guide To Online Privacy) We are ...

  6. 低功耗蓝牙软件开发人员指南_软件开发人员工作指南

    低功耗蓝牙软件开发人员指南 The following is an excerpt from The Complete Software Developer's Career Guide by Joh ...

  7. python初学者编程指南_动态编程初学者指南

    python初学者编程指南 编程辅导 (PROGRAMMING TUTORIAL) Dynamic programming is an art, the more problems you solve ...

  8. 鲜活数据数据可视化指南_数据可视化实用指南

    鲜活数据数据可视化指南 Exploratory data analysis (EDA) is an essential part of the data science or the machine ...

  9. 数据安全分类分级实施指南_不平衡数据集分类指南

    数据安全分类分级实施指南 重点 (Top highlight) Balance within the imbalance to balance what's imbalanced - Amadou J ...

最新文章

  1. 如何用c语言打出 * * * * * * * * * * * * *?
  2. SQL Server优化50法
  3. 八皇后解法(回溯法)
  4. C#ADO.NET操作数据代码汇总
  5. linux 编辑文件乱码,Linux 下 vim 编辑文件,解决中文乱码,设置Tab键空格数
  6. 微课|中学生可以这样学Python(3.3节):多分支选择结构
  7. 如何在 Mac 上设置自定义锁屏信息?
  8. 操作系统之哲学原理 第2版
  9. ode45matlab例子,ode45(ode45用法举例)
  10. 如何创建一个uniapp项目,如何运行手机上,打包等,更换头部,底部图标等。一目了然,
  11. 干货|Stakeholder利益相关者讲解
  12. cmd命令打印当前文件夹下所有文件的绝对路径并存到指定的文件内
  13. Math()方法的使用
  14. 如何在batch文件中取得该文件的路径
  15. 合工大 编译原理 实验三
  16. python逻辑判断函数_Python逻辑运算符及其用法
  17. Linux跑火车,提升趣味性
  18. 什么是代理,什么是代理服务器,使用代理服务器的目的是什么?
  19. GEO振弦式钢筋计适用范围
  20. 中科每时每客WiFi客流系统首次配置教程

热门文章

  1. 最短路问题(Bellman/Dijkstra/Floyd)
  2. 推荐一款好用的jquery弹出层插件——wbox
  3. SharePoint 2010中增强的错误跟踪机制
  4. 【个人笔记】OpenCV4 C++ 快速入门 05课
  5. [第1节]时间、空间复杂度,斐波那契、爬楼梯
  6. FFmpeg之YUV排列方式(十六)
  7. Mac安装IntelliJ IDEA配置go语言环境
  8. 非标准硬件控制之增加系统API
  9. android蓝牙历史
  10. 深度学习实战之手写签名识别(100%准确率、语音播报)