q第三章 类型、值和变量

数据类型:

原始类型(primitive type)对象类型(object type)
原始类型包括:

string number boolean null undefined

对象是属性(property)的集合,每个属性都由”名/值对“组成。
其中有一个特殊的对象——全局对象(global object)

3.1 数字

JS采用IEEE 754标准定义的64位浮点格式表示数字。

  • 注意:JS中实际的操作(比如数组索引,位操作符)则是基于32位整数。
  • 注意:在任何数字直接量前添加负号可以得到它的负值,但负号是一元求反运算符,并不是数字直接量语法的组成部分。
3.1.1 整型直接量

可识别十进制、十六进制

3.1.2浮点型直接量

整数部分+小数点+小数部分
指数计数法

3.1.3 算术运算

算数运算符
复杂运算:通过作为Math对象的属性定义的函数和常量来实现。

  • JS中的算术运算在溢出、下溢和被零整除时不会报错。

  • 溢出:数字运算结果超过了Js所能表现的数字上限,结果为Infinity或-Infinity

  • 下溢:运算结果无限接近0,并比JS所能表现的最小值还小。返回
    0,若是负数发生下溢,返回负零。
    被零整除返回Infinity或-Infinity。
    返回NaN:
    0/0
    Infinity/Infinity
    给任意负数作开方运算
    算术运算符和不是数字或无法转换为数字的操作数一起使用。

  • 使用x!=x判断NaN,只有这个值返回true

  • 函数IsNaN()参数是NaN或非数字值返回true

  • 函数IsFinite()参数不是NaN或Infinity、-Infinity返回true

  • 0 = -0 (作为除数时要留心)

3.1.4 二进制浮点数和四舍五入错误
var x =0.3-0.2
var y =0.2-0.1
x == y             //false
x = 0.1            //false
y = 0.1            //true

舍入误差

3.1.5 日期和时间

Date()构造函数等

3.2 文本

字符串是一组由16位值组成的不可变的有序序列。

3.2.1 字符串直接量

在ECMAScript5中字符串可拆分成多行,每行必须用反斜线\结束,另起一行用\n。
在JS和html中各自使用独立的引号分隔。

3.2.2 转义字符
D71E471D937C4AFA8FA863F70C89826C.jpg

6D75C0EC703C4F1D9DE6789487B0E138.jpg
3.2.3 字符串的使用

用+连接字符串
字符串的多个属性

3.2.4 模式匹配

RegExp()函数用来创建表示文本匹配模式的对象。这些模式称为正则表达式。

3.3 布尔值

布尔值包含toString()方法。

3.4 null和undefined

null是关键字,undefined是预定义的全局变量

3.5 全局对象

F8D5EE8D4E8845EABEFF41F1FF5FB4AF.jpg

3.6 包装对象

存取字符串、数字或布尔值的属性时创建的临时对象称为包装对象,它只是偶尔用来区分字符串值和字符串对象、数字和数值对象以及布尔值和布尔对象。

var str = "string" ;
此时str是基本字符串类型
str.length = 6 可以这样使用的原因是js生成了值和str一样的临时对象,操作完成后临时对象被删除。
尝试给str增加一个方法:
str.t = 3
查看值:str.t = undefined 临时对象被删除

3.7 不可变的原始值和可变的对象引用

原始值(string、number、boolean、null和undefined)与对象有着根本的区别。原始值不可更改!
通常将对象称为对象引用(reference type),对象值都是引用

3.8 类型转换

2B70D4F6BB634123881949F58C1C0849.jpg
3.8.1 转换和相等性
3.8.2 显示类型转换

Number("3") //3
String(false) //"false"或使用false.toString()
Boolean([ ]) //true
Object(3) //new Number(3)

  • 注意:除了null和undefined之外的任何值都具有toString()方法
3.8.3 对象转换为原始值

对象——boolean 全部为true
对象——string


E5A2A43AAD0F4D56A7722FE6DEE66DF5.jpg

A0F9B24ECD964057966CB4AAC424FA2F.jpg

对象——number

8CC47E0F91F24C4285CBAFFD3D5D104C.jpg

3.9 变量声明

3.10 变量作用域

3.10.1 函数作用域和声明提前

函数的作用域是指在函数内声明的所有变量在函数体内始终是可见的。这意味着变量在声明之前甚至已经可用(声明提前)

3.10.2 作为属性的变量

JS全局变量是全局对象的属性

3.10.3 作用域链
8F448070840445E58B3288B6776D239A.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容