01语法

基本类型

  1. 变量二次声明无意义,除非在第二次声明的时候,也赋值
  2. 有一些保留字
  • javascript保留字
  • 使用保留字报错类型:Uncaught SyntaxError: Unexpected token finally
  1. while只有一条语句的时候可省略大括号
  2. 循环标签使用方式
  • 在需要跳出的for循环层添加label
  • continuebreak后添加同名label

数据类型

  1. String,Number,Boolean,Undefined,Null,Object
  2. 使用typeof后有string,number,boolean,undefined,object,function
  • 注意和数据类型相比,少了null多了function
  • 结果都是小写
  1. undefinednull使用==相等。计算时,undefinedNaNnull是0
  2. 返回布尔值的地方
  • 关系运算符
  • &&,||,!
  1. 转化为false的情况
  • '',0,NaN,undefined,null,false
  1. if后需要布尔类型,[]{}其实是true

数值

  1. Number.MAX_VALUENumber.MIN_VALUE
  2. 科学记数法
  • 当小数点前有21位,还是正常显示。有22位,开始科学计数
  • 当小数点后有5位0,正常显示。有6位0,开始科学计数
  1. 各进制前缀,0x十六,0o八,0b
  2. NaN和isNaN()
  3. Infinity和isInfinity()
  4. parseInt()第二个参数说明了数据是什么进制。同时,只能转化为十进制

字符串

  1. 长字符换行,每行后用\
  2. 转义字符
  • 可有转移符号\n,\r,\t,\\
  • 可有转移字符,都对应unicode码点
    • \HHH三位八进制
    • \xHH两位十六进制
    • \uHHHH四位十六进制
  1. bitByteKBMBGBTB
  • 存储单位和网速的单位,不管是 B 还是 b,代表的都是 字节 Byte。
  • 带宽的单位,不管是 B 还是 b,代表的都是 比特 bit 。
  1. Base64是最常见的用于传输(8Bit)字节码的编码方式
  2. ASCII 是针对英文字符编码的方式
  3. Unicode 是针对多种语言进行编码的方式
  • 为了解决Unicode编码在互联网上传播的问题,各种规范出现utf-8,代表每次8个位传输数据
  1. GBK本来扩展自ASCII,后渐渐形成GBK。因为还有很多少数名族的语言

对象

  1. 创建对象
  • {}
  • new Object
  • Object.create(prototype),这种可以利用原型创造一个新的对象,经常用在继承
  1. 对象引用
  • 两个变量对引用同一个对象,则共用
  • 其中一个取消对对象的引用,不会影响另外一个
var a = {}
var b = a
a = 1
console.log(b)  // {}
  1. 检测全局变量,使用a in window方式,如果直接使用if(a)在没有a的情况下会报错
  2. delete成功删除之后返回true,不能删除继承的属性
  3. in用于检测对象是否含有某个属性,也就是键名
  4. for in遍历对象和继承的可遍历属性,跳过不可枚举属性
  5. 关于属性的两个方法
  • Object.defineProperty(obj,propName,{})
  • obj.hasOwnProperty()

数组

  1. 其实arr[0]等同与arr['0']arr[0.00]
  2. 类数组对象
  • arguments
  • 元素集合
  • 字符串
  1. 类数组转化成数组
  • Array.property.slice.call(arrayLike)
  1. 数组也能使用in,会将索引和属性遍历出来
  2. 数组空位计算在内,但是空位和undefined是不一样的。使用数组的forEach方法、for...in结构、以及Object.keys方法进行遍历,空位都会被跳过

函数

  1. 不会重载,后边的会覆盖前边的同名函数
  2. if语句块中只能使用函数表达式,不能使用函数定义
  3. fn.name属性返回紧跟在function关键字之后的那个函数名
  4. fn.name返回定义时参数个数
  5. fn.toString()返回函数的源码
  6. 函数的作用域是定义时所在的作用域,和运行时作用域无关
var a = 1;
var x = function () {
  console.log(a);
};
function f() {
  var a = 2;
  x();
}

f() // 1
  1. 当函数传入对象作为参数的时候
  • 如果修改对象某个属性,将对外部存在影响
  • 如果是替换掉整个参数,不会影响到外部
  1. 同名参数,取后出现的值。即使只传入第一个,但是也会取后者undefined
  2. arguments.callee返回函数本身
  3. 闭包作用
  • 读取函数内部的变量
  • 让变量始终保存在内存中,保存上次运行的状态
  1. 函数的立即调用有两种写法
  2. eval在严格模式下,声明变量不能影响外部变量。但是赋值语句等还是可以改变外部变量值

运算符

  1. 字符串的比较是按照字典的顺序,靠后的大
// 严重注意,字符串形式的数值比较
'2' > '11'  // true
[2] > [11] // true,因为会转换成 '2' > '11'
  1. 对象参与比较,会调用obj.valueOf().toString()
  2. 进制不同,但是转化为10进制相同,就全等
  3. 严格相等运算符比较的是地址,而大于或小于运算符比较的是值。
{} === {} // false
[] === [] // false
  1. 原始数据类型有string,number,boolean。它们混合比较的时候,会转换成数值类型再进行比较
'true' == true //false 
// 第一步 Number('true') ---> NaN
// 第二部 Number(true) ---> 1
// NaN == 1 ---> 结果为false
  1. 对象与原始类型值比较,对象转化成原始类型的值,再进行比较。
[1] == 1 // true
[1] == '1' // true
[1] == true // true
  1. 逻辑运算符和位运算符,位运算符可以用来扩大或缩小2的n次方
  2. void用来防止页面跳转
  3. 赋值运算符和三元运算符,是从右到左的

数据类型转换

  1. 主要是String,Boolean,Number之间的转换

错误处理机制

  1. Error的namestack属性存在兼容问题,后者可以显示错误首先是在哪里抛出的
  2. 错误类型和出现原因
  • synaxError 语法错误
  • referenceError 引用错误
    • 调用不存在的值
    • 不允许赋值
  • typeError 类型错误
    • 由 new 引起,不能对基本类型使用 new
  • URIError url参数不正确的时引起
    • 主要由编码的几种方法引起
  • evalError 使用错误
  • rangeError
  1. catch中的return语句会延迟到finally中执行

编程风格

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

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • 标签: 我的笔记 ---学习资料:http://javascript.ruanyifeng.com/ 1. 导论 ...
    暗夜的怒吼阅读 791评论 0 1
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,417评论 5 28
  • 然而也知道原因。晚安,虽然你眼睛不够大,腿不够长,能力不够强,可我会一直爱你。即使全世界都抛弃你,我也会永...
    九月的少年梦阅读 182评论 0 0
  • 先生亲述: 习武,乃文人贵事智勇顺成贵和之术,非常人所能为。 形意拳,历史悠久,源远流长,它受我们祖先传统的哲学思...
    295442de7134阅读 395评论 0 0