Javascript 学习笔记

  • JavaScript 中的变量类型
    JavaScript 中变量可以存储两种类型的值,即原始值和引用值。
    5种原始类型:Boolean, Number, String, Null, Undefined
    其中 Null 和 Undefined 这两种类型都只有一个值,分别是 null 和 undefined,undefined 表示声明了变量但是未初始化,null 表示尚未存在的对象
    引用类型使用 typeof 之后都会统一返回 Object(null 也会返回 Object)
    参考资料:《JavaScript 高级程序设计》 Nicholas C.Zakas 著, 曹力 张欣 等译
  • Array 对象创建之后,可以灵活地改变其长度
var arr = [1, 2];
console.log(arr.length); //2
arr.length = 4; //通过设置length来扩展arr的长度
console.log(arr.length);//4
console.log(arr);// 1,2,,
arr[4] = 4; //通过直接扩展下标来扩展arr的长度
console.log(arr.length); //5
console.log(arr);// 1,2,,,4
//直接通过下标越界读取arr的内容不会引起arr扩容
console.log(arr[5]);//undefined
console.log(arr.length); //长度依然为5

廖雪峰教程链接

  • 模板字符串
    能否使用需要看浏览器是否支持
var name = '小明';
var age = 20;
var message = `你好, ${name}, 你今年${age}岁了!`;
alert(message);
  • Array.protype.splice()方法
    array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
    start表示开始的下标,从0开始(-1表示倒数第一个),deleteCount表示从start开始连续删除的元素个数, item列表表示要插入的元素列表。
    通过这三个参数的组合,可以对array实现包括删除,替换等丰富的操作。
    当只传入一个参数的时候,表示删除从该下标开始(包含该下标)的所有元素
    参考文档
  • JavaScript 中的apply,call和bind
    ECMAScript规范中给所有的函数都实现了 call 和 apply 两个函数,call() 接收上下文对象和一个参数列表,apply() 接收上下文对象和所有参数组成的数组,apply() 和 call() 都会立刻执行,作用包括改变 this 的指向,调用函数,???
    call() 和 bind() 接收参数的方式都是一样的,区别在于 bind() 返回的是函数,不会立即执行,原来函数的上下文不会被影响。bin()也是在 EcmaScript5 中扩展的。
  • JavaScript的变量提升
    JavaScript 在处理函数中变量声明的时候,会先把函数内部所有声明的变量提升到函数顶部。所以我们会看到一些先使用后声明的语句情况也能够工作。但是要注意的是,虽然声明会被提升到顶部,但是赋值并不会。
'use strict'
function test() {
  var x = "Today is ";
  console.log(x + y); // Today is undefined
  y = "Monday";
  console.log(x + y); // Today is Monday
  var y;
}
test();
  • JavaScript 中的 this
    不同于我们常见的面向对象编程语言(如java和C++),JavaScript并没有真正意义上的类。通常JavaScript 中使用的对象创建方式是通过构造函数。构造函数并不属于某一个类,而是一个普通的函数,当使用 new 标记来调用这个函数的时候,它就成为了一个能够创建对象的构造函数。
function Company(companyName, companyCode) {
    this.companyName = companyName;
    this.companCode = companyCode;
}

var company = new Company("google", 1001);
console.log(company);  //  打印: Company { companyName: 'google', companCode: 1001 }

function mockContext() {
    var company1 = new Company("facebook", 1000);
    console.log(company1); // 打印:Company { companyName: 'facebook', companCode: 1000 }
    Company.call(company1, "apple", 1002);
    console.log(company1); // 打印:Company { companyName: 'apple', companCode: 1002 }
}
mockContext();

函数 Company() 实际上就是一个普通的函数,函数体内部的 this 指向的一直是调用该函数的对象,而这个对象会随着上下文的变化而不同。当我们使用 new 符号来调用 Company() 函数的时候,new 符号会先创建一个默认的对象(object),this 会指向这个对象。当正常使用 Company() 函数的时候,this 指向的就是调用它的那个对象
this 这么神奇的特性,实际上在编程中会带来一些问题,就是我们需要时刻注意 this 的指向。我们经常会在函数的内部看到这样一种写法:var that = this; 这就是为了在函数内部运行过程中进入到其他的对象中,this 指向发生变化之后,仍然可以通过 that 来使用原来的 this 指向的内容。

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

推荐阅读更多精彩内容