标签:creat 选择器 解释 情况下 部分 his 检测 网站 阅读
很直接!就是考察最近学习了没?学到了点啥?如果没学还真不好糊弄。
享受代码运行成功时的成就感。
喜欢用Mac、sublime、chrome等。
语义化一句话来概括就是使用正确的标签做正确的事。在没有css样式的情况下,也能使网站层次清晰可读。语义化的好处之一是还利于网站的SEO。
我真的喜欢两个空格缩进。“它是唯一一种在所有浏览器里显示一致的缩进方式。”
Chrome Web Developer Tools
HTML5
网页通过标准定制机构定制统一标准才能更好的发展。
IE下css文件中使用@import带来的Flash of Unstyled Content。使LINK标签将样式表放在文档HEAD中。
用来说明使用的HTML是什么版本。
盒模式的解析。
强制规定原本灵活的HTML语言来遵循XML的严格规范,明显与时代发展相悖。
HTML5新增的可以用来统一存放数据的属性,还能用来存放JSON格式。
Geolocation/Web Socket/Canvas/Video/HTML5 forms/Web Workers
抹平不同浏览器初始化样式。推荐normalize.css
浮动会使节点脱离文档流。
overflow:hidden
:内容不担心被截断时很方便。将多个小图标统一排列到一张图片再使用background-position来选取以减少HTTP请求数。
.header{
text-indent: 100%;
overflow: hidden;
white-space: nowrap;
}
略。
略。
bootstrap。
Media query
参考链接
为打印媒体添加打印样式。
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
or
@media print{
div{
/**/
}
}
优点:变量、mixin、大量插件。 缺点:上手速度。
可使用@font-face,不支持的浏览器尽量使用图片。
从选择器最右边开始一层层解析并判断。
盒模型包括margin/border/padding/content。CSS3中使用box-sizing:
利用事件冒泡到父节点,再查找事件源event.target
是哪个子节点。
对象中的this指向当前对象,函数中的this始终指向当前作用域的上下文(上下文可以被修改)。
当查找对象的属性时,首先在该对象本身查找,否则追溯到其原型去找,直到查找到Object.prototye为止。
名值对组成的对象或JSON数据格式。
function foo(){ }();
函数声明不能直接被调用。需要用括号包裹或者前面加操作符使其变为函数表达式。
参考链接
他们都表示空值,而且 null == undefined,但是属于不同的基本数据类型。
闭包可以让外部作用域使用内部作用域的变量。当外部作用域执行完毕后,内存也不会被释放。这是JS强大功能的一面。
arr.forEach(function(value, index){})
利用IIFE和闭包的概念,返回内部程序接口供外部使用。既不污染全局变量,又能导入外部引用对象。
宿主对象是指DOM(document)和BOM(window)。原生对象是Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、Math等对象。
function Person(){}
var person = Person();
var person = new Person();
上面的this指针指向window对象,下面的this指向新生成对象,最后该对象赋给person。
.call
和 .apply
的区别是什么?接受的参数形式不同:call接受参数列表形式,apply接受数组/类数组形式。
fn.call(context, 1, 2, 3)
fn.apply(context, [1, 2, 3])
fn.apply(context, arguments)
Function.prototype.bind
的作用?扩展函数原型,使所有函数都新增bind方法,该方法可以绑定该函数执行上下文后返回一个新函数。
刚开始写就会注意优化。
当查找对象的属性时,首先在该对象本身查找,否则追溯到其原型去找,直到查找到Object.prototye为止。
document.write()
?大多数生成的广告代码依旧使用 document.write()
,虽然这种用法会让人很不爽。几乎不用。
特性检测更适合针对实现了特定特性的浏览器进行操作。UA字符串由于被浏览器厂商可以随意修改因此不太靠谱。
XMLHttpRequest对象,方法有open
、get
、send
等。
参考链接
参见链接
一种跨域方法,让远程服务器把接受到的参数作为方法名包裹查询的数据后返回,在本地调用该方法。JSONP没用到XMLHttpRequest对象。
了解Mustache。使用过UnderscoreJS自带模版。
作用域内所有变量声明都被提到顶部,被提升的变量初始值为undefined,执行到所在行时才真正赋值。
IE支持事件冒泡,Netscape支持事件捕获,W3C建立先捕获-后冒泡机制。
扩展内置对象会造成混乱。
虽然会强壮JS的原生功能,但还是不是好做法。
ready事件监听DOM树的加载完成时间,先于onload的页面所有内容加载完毕时间。
=== 不会做隐式类型转换
浏览器的安全策略,限制了不同域名甚至不同端口的js文件的交互方式。
类式继承:参考链接
function Person(name){
this.name = name
}
Person.prototype.sleep = function(){
console.log(this.name + ‘ is sleeping.‘)
}
function Student(name){
Person.apply(this, arguments)
}
Student.prototype = new Person()
var lilei = new Student(‘li lei‘)
lilei.sleep()
原型继承:参考链接
function Person(){}
Person.prototype.sleep = function(){
console.log(this.name + ‘ is sleeping‘)
}
function inherit(o){
var F = function(){}
F.prototype = o
return new F
}
function Student(name){
this.name = name
}
Student.prototype = inherit(Person.prototype)
var lilei = new Student(‘lilei‘)
lilei.sleep()
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
方法一
Array.prototype.duplicator = function(){
return this.concat(this)
}
函数也是对象,因此考虑将部分计算结果用键值对方式缓存到该函数对象上,下次直接查找该计算的键值。
根据一个判断结果的true和false的不同而得到两种不同的返回值。
略。
好处是使JS在严格模式下运行,减少bug。坏处是有些对象使用时会报错,如arguments.callee等。
函数返回自身,供链式调用
$(ele).click().show().animate().hide()
一句话解释:可以随时调用一个异步函数的返回值。
返回对jQuery引用对象造成“破坏性”操作之前的DOM节点。
可以选择挂在jQuery对象下面,好处是可以减少使用全局变量。
// 1. dom ready
$(function(){
})
// 2. selector
$(‘a.close-btn‘)
// 3. create node
$(‘<div />‘)
// 4. wrapp nodeList
$(document.getElementsByTagName(‘div‘))
.queue()
方法的使用。
.get()
返回的是原生DOM节点,.get()
与[]
返回的是原生DOM节点,.get()
不传参数还可以返回包裹的原生数组对象。参考链接
.eq()
返回的是jQuery对象。参考链接
.on()
,将上面三者的优点全盘接收。.bind()
方法用于绑定事件,事件绑定在该节点上。该方法还能用来绑定自定义事件。.live()
方法还能用于给将来添加到页面里的节点也能绑定事件。事件绑定在document上。.delegate()
方法使用了事件委托机制,也达到了.live()
的效果。事件绑定在了节点的父节点上。.on()
方法改造了.delegate()
使用方法,还将.bind()
的绑定自定义事件的功能收入囊中。$.fn是jQuery对象的原型缩写,扩展$.fn可以为所有jQuery对象添加原型方法。
$(".foo div#bar:eq(0)")
$(‘.foo‘).find(‘#bar‘).first() // $(‘#bar‘)不就是想要的吗?
~~3.14
答案:3
"i‘m a lasagna hog".split("").reverse().join("");
答案:"goh angasal a m‘i"
( window.foo || ( window.foo = "bar" ) );
答案:"bar" 只有 window.foo 为假时的才是上面答案,否则就是它本身的值。
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
答案: "Hello World" 和 ReferenceError: bar is not defined
var foo = [];
foo.push(1);
foo.push(2);
答案:2
var foo = {};
foo.bar = ‘hello‘;
答案: undefined
没有。
Google Developer Tools
Github
IE的各种bug。
标签:creat 选择器 解释 情况下 部分 his 检测 网站 阅读
原文地址:https://www.cnblogs.com/qiweile/p/9975072.html