一些琐碎记不住的东西
逗号运算符
表达形式: 表达式1,表达式2 … 表达式n
求解过程: 先计算表达式1,在计算表达式2,以此类推。
最终的值为表达式n的值
1 | var count = 0; |
1 | x = 8*2,x*4 |
1 | (x=8*2,x*4),x*2 |
1 | x=(z=5,5*2) /*整个表达式为赋值表达式,它的值为10,z的值为5*/ |
带命名空间的事件(namespaced events)
on()
事件的第一个参数是事件的类型,可以通过click.[name]
的方式对事件加标识以方便后期移除特定事件。代码如下:1
2
3
4
5
6
7
8$('a').on('click', function() {
//Handler 1
});
$('a').on('click', function() {
//Handler 2
});
$('a').off('click') 会将两个移除
1 | $('a').on('click.namespace1', function() { |
只移除名叫namespace2
的点击事件
几个测试题
1 | [] == [] // fasle |
1 | if(!("a" in window)){ |
this
1 | function Person() { |
typeof(null) === 'object'
的原理
不同对象在底层都为二进制,在 JS 中前三位都为 0 的话就会被判定为 object
,null
的二进制都是 0。
Javascript 类型
主类型(6): null
, undefined
, boolean
, number
, string
, object
object 子类型(9):String
, Number
, Function
, Boolean
,Array
, Date
Object
, RegExp
, Error
https 请求方式
options
, head
, put
, delete
, get
, get
, post
, trace
, connect
阻止表单提交
1 | form.addEventListener("submit", function(e) { |
jQuery
实现:
1 | // 取消表单提交动作,防止事件冒泡 |
禁用 input
记忆性输入
1 | IE: <input type="text" autocomplete = "off"> |
jQuery
事件委托
1 | $('body').on('click', 'div', function() { |
快速生成时间戳
1 | var current = +new Date(); |
跨 iframe
获取元素
1 | $('子元素', '父元素') |
window.parent.document
包含当前窗口的父窗口
Document.readyState
文档加载状态
value:
loading
/ 加载中 =>document
仍在加载中interactive
/ 互动 =>document
已被加载和解析,但image
,CSS
,Javascript
仍在加载中。 此阶段会触发DomContentLoaded
事件compete
/ 完成 =>document
和所有子资源完成加载。load
事件加载
readyState
属性值变化会触发document.onreadyStateChange
事件
IE 下 document.documentElement.doScroll
,是 IE 下特有的方法,检测 DOM
是否加载完成。
行内元素转块级元素
position: absolute / fixed;
和 float
都可以使 行内元素转为块级元素
i++ 与 ++i
例:购物车修改数量
1 | shuliang = (++shuliang > stock ? stock : shuliang) |
取整与转换
1 | var ac = '1.23423'; |
判断奇偶
1 | (222 & 1) == 0 ? '偶数' : '奇数' |
强制 Webkit 内核渲染
很多国产浏览器都是双内核,例如“360、QQ”等,它们都提供了强制使用 Webkit 内核渲染的开启模式
1 | <meta name="renderer" content="webkit" /> |
CSS 语法中表示参数符号类型
以 linear-gradient()
举例
1 | background-image: linear-gradient( [ <angle> | <side-or-corner> ,]? <color-stop> [, <color-stop>]+ ); |
[]
在正则中表示一个字符类,这里,你可以理解为一个小单元。|
表示候选。也就是“或者”的意思,要么前面的,要么就后面的。?
为量词,表示0个或1个,言外之意就是,你可以不指定方向,直接渐变色走起。例如:1
background:linear-gradient(red, yellow);
就是从上往下的红黄条纹效果。
+
也是量词,表示1个或者更多个。因此,终止颜色是不可缺少的。例如:linear-gradient(red)是酱油命,白板。<>
中的是关键字,主要是让开发人员知道这里应该放些什么内容。
CSS 选择器排序
1.id选择器(#myid)
2.类选择器(.myclassname)
3.标签选择器(div,h1,p)
4.相邻选择器(h1+p)
5.子选择器(ul < li)
6.后代选择器(li a)
7.通配符选择器(*)
8.属性选择器(a[rel=”external”])
9.伪类选择(a:hover,li:nth-child)
CSS 可继承 & 不可继承属性
不可继承
display:规定元素应该生成的框的类型
文本属性:
vertical-align:垂直文本对齐
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
unicode-bidi:设置文本的方向
盒子模型的属性
width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left
背景属性:
background、background-color、background-image、background-repeat、background-position、background-attachment
定位属性:
float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
生成内容属性:
content、counter-reset、counter-increment
轮廓样式属性:
outline-style、outline-width、outline-color、outline
页面样式属性:
size、page-break-before、page-break-after
声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during
可继承属
字体系列属性
font:组合字体font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。
font-stretch:对当前的 font-family 进行伸缩变形。所有主流浏览器都不支持。
font-size-adjust:为某个元素规定一个 aspect 值,这样就可以保持首选字体的 x-height。
文本系列属性
text-indent:文本缩进
text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白(即字间隔)
letter-spacing:增加或减少字符间的空白(字符间距)
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色
元素可见性:visibility
表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout
列表布局属性:list-style-type、list-style-image、list-style-position、list-style
生成内容属性:quotes
光标属性:cursor
页面样式属性:page、page-break-inside、windows、orphans
声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation
所有元素可以继承的属性
元素可见性:visibility
光标属性:cursor
内联元素可以继承的属性
字体系列属性
除text-indent、text-align之外的文本系列属性
块级元素可以继承的属性
- text-indent、text-align
头部高度固定,剩下自适应
头部正常排列,下方 width: 100%;absolute: top: 100px; bottom: 0;
普通元素不设置宽度的时候改为绝对定位会丢失宽度
表单只有一个 input text
时
W3C 标准中有如下规定:
When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.
当 form
元素中只有一个输入框时, 在该输入框中按下回车应该提交表单。