观阮一峰老师js教程笔记

1. js中并不是所有值都是对象
  • 基本数据类型不是对象,没有方法和属性
      方法:是某个特定对象才能调用的函数
      属性:是隶属于某个特定对象的变量
      对象:是一种字包含的数据类型
2. JavaScript与ECMAScript的关系
  • ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。
2.1基本语法
  • 变量提升:就是所有的变量的声明语句,都会被提升到代码的头部
  • for循环和while循环相同
  • 三元运算符(条件) ? 表达式1 : 表达式2可视为if...else的简写
  • do...while循环不管条件是否为true至少执行一次
  • continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环
  • break用于直接跳出循环或代码块
2.2数据类型
  • typeof null返回object
  • if语句中undefinednull都会转为false
  • null是一个表示“空”的对象,转为数值时为0;
  • undefined是一个表示”此处无定义”的原始值,转为数值时为NaN。
  • 转换规则是除了下面六个值被转为false,其他值都视为true。
    undefined
    null
    false
    0
    NaN
    "或''(空字符串)
2.3数值
  • js中所有数字都是64位双精度浮点数
  1. 第1位:符号位,0表示正数,1表示负数
  2. 第2位到第12位(共11位):指数部分
  3. 第13位到第64位(共52位):小数部分(即有效数字)
  • 绝对值小于等于2的53次方的整数,即2-53到253,都可以精确表示。
  • 数值的进制

十进制:没有前导0的数值。
八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
十六进制:有前缀0x或0X的数值。
二进制:有前缀0b或0B的数值。

  • parseInt方法用于将字符串转为整数。
  1. 如果parseInt的参数不是字符串,则会先转为字符串再转换。
  2. 字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
    3.如果以0x开头会照16进制解析
    4如果以0开头会以10进制解析
  3. parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制
  4. 如果第一个参数不是字符串,"0x11"写成0x11则会先转换为10进制,在进行第二个参数的转换
    -isNaN()
  • isNaN()可以用来判断一个值是否为NaN。
  • isNaN只对数值有效,如果传入其他值,会被先转成数值。相当于isNaN(Number('xxx'))
2.4字符串
  1. 字符串只能写在一行内,如果要分成多行,每一行末尾加上\和换行符
  2. 反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。
  3. 字符串可视为字符数组可以使用[]运算符返回某个位置的字符
    反斜杠\有3种特殊的用法:
  • \HHH
    反斜杠后面紧跟三个八进制数(000到377),代表一个字符。HHH对应该字符的 Unicode 码点,比如\251表示版权符号。显然,这种方法只能输出256种字符。
  • \xHH
    \x后面紧跟两个十六进制数(00到FF),代表一个字符。HH对应该字符的 Unicode 码点,比如\xA9表示版权符号。这种方法也只能输出256种字符。
  • \uXXXX
    \u后面紧跟四个十六进制数(0000到FFFF),代表一个字符。HHHH对应该字符的 Unicode 码点,比如\u00A9表示版权符号。
  1. 字符集
  • 每个字符在javascript中都以16位(2个字节)的utf-16格式储存
  • JavaScript 使用 Unicode 字符集。JavaScript 引擎内部,所有字符都用 Unicode 表示。
  • 由于历史原因,对于码点在U+10000到U+10FFFF之间的字符,JavaScript 总是认为它们是两个字符
  1. Base64 转码
  • 文本有不可打印的符号可以使用base64转码
  • btoa():任意值转为 Base64 编码
    atob():Base64 编码转为原来的值
  • 必须是ASCII 码的字符
2.5对象
  • 对象就是hash,就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
  • 对象中所有的key(键名)的都是字符串,如果是数值会自动转换为字符串
  • 如果key不符合标识符的条件,(比如第一个字符为数字,或者含有空格或运算符且也不是数字),必须加上引号
  • key也叫属性,如果value为函数,那么通常把这个属性称为“方法”,如果属性的值还是一个对象,就形成了链式引用。
  • 如果只采用大括号。JavaScript 规定,如果行首是大括号,一律解释为语句(即代码块),如果想表达对象则要咋在外加上圆括号({a:123})
  • 读取属性obj.p或者obj['p'] 如果不加引号则指向一个变量
  • 查看对象的所有属性Object.keys
    -delete命令可以删除对象的属性,删除不存在的属性也会返回true,不能删除继承的属性
  • in运算符检查某个对象是否包含某个属性(key) (不能识别是否为继承的,都会返回true)
  • for(...in...){}用于遍历对象的全部属性
  • with 语句用来批量操作同一个对象的多个属性(如果with区块内部有变量的赋值操作,必须是当前对象已经存在的属性,否则会生成一个全局变量)
2.6数组
  • 数组其实是固定key的对象(hash),key['0'],['1'],['2'].['3'],['4']...都是字符串
  • 数组的length是其中最大key+1,不是其中的个数
  • 当数组的某个元素是空元素,即2个逗号之间没有任何值,我们称改数组存在空位
  • 空位不会影响length属性,空位是可读取的,返回undefined,delete命令删除某个属性,这个位置就形成了空位
  • 空位就是数组没有这个元素,所以不会被遍历到,而undefined则表示数组有这个元素,值是undefined,所以遍历不会跳过。
  • 类似数组的对象,特征是具有lenght属性,length不是动态的
  • 可以使用var arr = Array.prototype.slice.call(arrayLike)把对象变成真正的数组
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342