zxlg's notes


  • 首页

  • 归档

  • 标签

  • 分类

  • 关于

  • 搜索

HTML笔记

发表于 2017-08-20 | 更新于: 2019-08-12 | 分类于 HTML | 阅读次数:

2017.08.20更新


锚点链接

HTML链接 - name 属性

name 属性规定锚(anchor)的名称。
使用 name 属性创建 HTML 页面中的书签。书签不会以任何特殊方式显示,它对读者是不可见的。
当使用命名锚(named anchors)时,我们可以创建直接跳至该命名锚(比如页面中某个小节)的链接,这样使用者就无需不停地滚动页面来寻找他们需要的信息了。

阅读全文 »

Javascript中的设计模式总结

发表于 2017-08-20 | 更新于: 2019-08-12 | 分类于 Javascript | 阅读次数:

————————————————————————
2017-08-21 更新
————————————————————————

工厂模式

1
2
3
4
5
6
7
8
9
10
11
12
function createPerson(name,age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayName = function(){
console.log(obj.name)
}
return obj;
}

var person1 = createPerson('Tom',20);
var person2 = createPerson('zxlg',24);

工厂模式解决创建多个相似对象的问题,但是没有解决对象识别的问题,即怎样知道一个变量的类型

阅读全文 »

Javascript原型对象和原型链

发表于 2017-08-20 | 更新于: 2019-08-12 | 分类于 Javascript | 阅读次数:

函数原型对象和原型

1
2
3
4
5
6
7
8
9
10
11
12
function Person(){
}
Person.prototype.name = "zxlg";
Person.prototype.age = 24;
Person.prototype.sayName = function(){
console.log(this.name);
};
var person1 = new Person();
person1.sayName(); //"zxlg"
var person2 = new Person();
person2.sayName(); //"zxlg"
person1.sayName == person2.sayName; //true

无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象。在默认情况下,所有原型对象都会自动获得一个constructor(构造函数)属性,这个属性包含一个指向 prototype属性所在函数的指针。上述代码中Person.prototype.constructor指向Person。

创建了自定义的构造函数之后,其原型对象默认只会取得constructor属性;至于其他方法,则都是从Object继承而来的。当调用构造函数创建一个新实例后,该实例的内部将包含一个指针(内部属性),指向构造函数的原型对象。 ECMA-262 第 5 版中管这个指针叫[[Prototype]]。虽然在脚本中没有标准的方式访问[[Prototype]],但 Firefox、 Safari 和 Chrome 在每个对象上都支持一个属性__proto__;而在其他实现中,这个属性对脚本则是完全不可见的。
这个连接存在于实例与构造函数的原型对象之间,而不是存在于实例与构造函数之间。
上述代码中person1和person2的[[Prototype]]指向构造函数的原型对象Person.prototype

阅读全文 »

NexT主题升级

发表于 2017-08-19 | 更新于: 2019-08-12 | 分类于 Hexo | 阅读次数:

版本升级

目前升级 NexT 主题的时候并不是非常的流畅。若使用git pull的方式,很多时候可能会产生冲突;而下载新版本覆盖安装的方式又需要手动合并主题的_config.yml文件。
在此修改之前, NexT 建议将配置分离,一部分在 站点的配置文件中,另外一部分在主题的配置文件中。将需要自定的选项放置在 站点配置文件中,从而脱离避免更新主题时可能遇到的麻烦。这种方式是可行,但是有一些缺点:

  1. 配置分离成了两个部分
  2. 用户可能会疑惑一些选项该放置在哪里比较合适

为了解决这个问题, NexT 将会使用 Hexo 的Data Files。然而由于Data Files是在 Hexo 3 版本时引进的,所以要使用这个特性,需要 Hexo 的版本不低于 3。

阅读全文 »

阿里巴巴在线笔试

发表于 2017-08-17 | 更新于: 2019-08-12 | 分类于 Interview | 阅读次数:

前端

题目

利用面向对象思想完成买家信息删除功能,每一条买家信息包含

  • 姓名 (name)
  • 性别 (sex)
  • 电话号码 (number)
  • 省份 (province)

要求

  1. 不能借助任何三方库,需使用原生代码实现
  2. 结合给出的基本代码结构,在下方2处code here处补充代码,完成买家信息的删除功能,注意此页面需要在手机上清晰显示。
  3. js代码可任意调整,例如可使用es6语法完成
    阅读全文 »

《上帝掷骰子吗?——量子力学史话》读书笔记

发表于 2017-08-14 | 更新于: 2019-08-12 | 分类于 读书笔记 | 阅读次数:

2017.8.5开始读,2017.8.12日读完
这是一本关于量子力学的历史的科普性著作


2017.8.14更新


经典物理的黄金时代

光的本质

波动说和粒子说

波动粒子之争

第一次波粒战争

主要参与人物:

  1. 粒子说:牛顿
    • 《光学》,色散,牛顿环(明暗条纹),衍射
    • 质疑如果光是波,为什么无法像声音那样绕开障碍物前进?
  2. 波动说:胡克(光是一种纵波),惠更斯
    第一次交锋以牛顿为首的微粒说战胜了波动说

第二次波粒战争

  1. 波的干涉
    托马斯.杨: 波的双缝干涉实验(1807年)
    波的叠加与抵消
  2. 决定性事件(1819年)
    菲涅尔: 采用光是一种波动的观点,用严密的数学推理解释了光的衍射
    该理论用于圆盘衍射为一个亮斑,泊松质疑,阿拉果坚持实验检测,完美证明,后被误称为“泊松亮斑”
  3. 光的偏振
    菲涅尔提出光是一种横波,而不是纵波,成功解析了偏振现象(1821年)
  4. 光速
    傅科:“傅科摆”(1850年)
    测量光在真空和水中的速度,后者为前者的3/4
  5. 电磁理论
    麦克斯韦发表电磁理论的论文,预言光是电磁波的一种(1861年)
    赫兹实验证明了麦克斯韦电磁理论(1887年)
    麦氏方程在数学上完美得难以置信,科学美的典范
    至此,波动的光辉达到顶点
    阅读全文 »

动态规划

发表于 2017-08-13 | 更新于: 2019-08-12 | 分类于 算法 | 阅读次数:

2017.08.17更新


背包问题

01背包

状态

dp[i][j]表示前i个物品装到剩余容量为j时的最大价值

状态转移方程

dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - weight[i - 1]] + value[i - 1])
第i个物品装或者不装入背包,不装价值为dp[i-1][j],装表示剩下i-1个物品装入j-weight[i-1]重的最大价值,加上value[i-1]
注意讨论前i个物品装入背包的时候, 其实是在考查第i-1个物品装不装入背包(因为物品是从0开始编号的)

阅读全文 »

JavaScript Puzzlers解析

发表于 2017-08-12 | 更新于: 2019-08-12 | 分类于 Javascript | 阅读次数:

JavaScript Puzzlers!,题目基于ECMA 262 (5.1)的浏览器环境

1.What is the result of this expression? (or multiple ones)

1
2
3
4
5
6
["1", "2", "3"].map(parseInt)

A.["1", "2", "3"]
B.[1, 2, 3]
C.[0, 1, 2]
D.other

考察map和parseInt
Array.prototype.map()接收三个参数(element,index,Array)
parseInt()接收两个参数(val,radix),radix为基数,parseInt('17',8) //15,radix为0或无表示以10为基数。每个位上的数字不能比基数大,否则返回NaN,radix不能为1,范围为2-36。

1
2
3
parseInt('1',0)//1
parseInt('2',1)//每个位上的数字不能比基数大,且基数不能为1,返回NaN
parseInt('3',2)//每个位上的数字不能比基数大,返回NaN

所以选D

阅读全文 »

Javascript中的Function对象总结

发表于 2017-08-12 | 更新于: 2019-08-12 | 分类于 Javascript | 阅读次数:

属性

arguments

arguments是一个类似数组的对象, 对应于传递给函数的参数。
arguments对象是所有函数中可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数的条目,第一个条目的索引从0开始。

转换数组

arguments对象不是一个Array。它类似于数组,但除了长度之外没有任何数组属性。例如,它没有pop方法。但是它可以被转换为一个真正的数组:

1
2
3
let args = Array.prototype.slice.call(arguments); 

let args = [].slice.call(arguments);

你还可以使用Array.from()方法或spread运算符将arguments转换为真正的数组:

1
2
let args = Array.from(arguments);
let args = [...arguments];

属性

arguments.callee
指向当前执行的函数。
arguments.length
指向传递给当前函数的参数数量。

length

length是函数对象的一个属性值,指该函数有多少个必须要传入的参数,那些已定义了默认值的参数不算在内,比如function(xx = 0)的length是0。与之对比的是,arguments.length是函数被调用时实际传参的个数。

Function构造器本身也是个Function。他的length属性值为 1 。该属性 Writable: false, Enumerable: false,Configurable: true。

Function原型对象的length属性值为 0 。

阅读全文 »

前端面试总结

发表于 2017-08-09 | 更新于: 2019-08-12 | 分类于 Interview | 阅读次数:

2017-08-22更新 添加双飞翼、圣杯布局



2017-08-30更新 添加BFC



2017-08-31更新 添加js模块化,函数节流



2017-09-01更新 添加this对象分析



2017-09-02更新 添加并发编程与事件循环



2017-09-04更新 添加浏览器渲染,重排,重绘



2017-09-06更新 添加HTTP缓存,离线应用和客户端存储



2017-09-09更新 JS事件循环,setTimeout,setInterval



2017-09-21更新 Ajax原生实现过程



2017-09-23更新 添加HTTP/HTTPS


开放性问题

为什么选择前端?

项目遇到的问题及如何解决?

技术性问题

阅读全文 »
1…345…7
zxlg

zxlg

65 日志
23 分类
98 标签
RSS
微博 GitHub
Creative Commons
© 2021 zxlg
由 Hexo 强力驱动
|
主题 — NexT.Mist