初学者web前端学习笔记

 

1.if条件语句相关

对于 if 语句括号里的表达式,ECMAScript 会自动调用 Boolean()转型函数将这个表达式的结果转换成一个布尔值。若是值为 true,执行后面的一条语句,不然不执行。css

2.arguments相关

经过arguments 对象的length属性,来智能的判断有多少参数,而后把参数进行合理的应用 。
好比,要实现一个加法运算,将全部传进来的数字累加,而数字的个数又不肯定。前端

function box() {
sum0        var=;
iflength0returnsum//若是没有参数,退出       (arguments.==);
for0length//若是有,就累加       (var i =;i < arguments.; i++) {
sumsum           =+ arguments[i];
        }
returnsum//返回累加结果       ;
    }
5912    alert(box(,,));

3.函数内部属性

函数内部,有两个特殊的对象:arguments 和 this。arguments 是一个类数组对象,包含着传入函数中的全部参数,主要用途是保存函数参数。但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。
对于阶乘函数通常要用到递归算法,因此函数内部必定会调用自身;若是函数名不改变是没有问题的,但一旦改变函数名,内部的自身调用须要逐一修改。为了解决这个问题,咱们可使用 arguments.callee 来代替。jquery

numfunction box() {
ifnum1       (<=) {
return1           ;
else        }{
returnnumnum-1//使用 callee 来执行自身         }           * arguments.callee();
    }

4.event对象

直接接收 event 对象,是 W3C 的作法,IE 不支持,IE 本身定义了一个 event 对象,直接在 window.event 获取便可。web

function (evt) input.onclick ={
varwindow//实现跨浏览器兼容获取 event 对象   e = evt ||.event;
    alert(e);
};

5.事件的目标

W3C 中的 target 和 IE 中的 srcElement,都表示事件的目标。算法

function getTarget(evt) {
varwindow   e = evt ||.event;
return//兼容获得事件目标 DOM 对象   e.target || e.srcElement;
documentfunction (evt) }.onclick ={
var   target = getTarget(evt);
    alert(target);
};

6.阻止事件冒泡

在阻止冒泡的过程当中,W3C 和 IE 采用的不一样的方法,那么咱们必须作一下兼容。chrome

function stopPro(evt) {
varwindow   e = evt ||.event;
windowtrue   .event ? e.cancelBubble =: e.stopPropagation();
}

7.阻止事件默认行为

function preDef(evt) {
varwindow   e = evt ||.event;
if   (e.preventDefault) {
        e.preventDefault();
else    }{
false        e.returnValue =;
    }
}

8.上下文菜单事件:contextmenu

当咱们右击网页的时候,会自动出现 windows 自带的菜单。那么咱们可使用 contextmenu 事件来修改咱们指定的菜单,但前提是把右击的默认行为取消掉。windows

function addEvent(obj, type, fn) //添加事件兼容{
if   (obj.addEventListener) {
type        obj.addEventListener(, fn);
elseif    }(obj.attachEvent) {
'on'type        obj.attachEvent(+, fn);
    }
function removeEvent(obj, type, fn) //移除事件兼容}{
if   (obj.removeEventListener) {
type    ob    j.removeEventListener(, fn);
elseif    }(obj.detachEvent) {
'on'type        obj.detachEvent(+, fn);
    }
}
 
 
window'load'function () addEvent(,,{
vardocument'text'   text =.getElementById();
'contextmenu'function (evt)     addEvent(text,,{
varwindow       e = evt ||.event;
        preDef(e);
vardocument'menu'       menu =.getElementById();
'px'        menu.style.left = e.clientX +;
'px'        menu.style.top = e.clientY +;
'visible'        menu.style.visibility =;
document'click'function ()         addEvent(,,{
document'myMenu''hidden'           .getElementById().style.visibility =;
        });
    });
});

9.js中的文档模式-document.compatMode

文档模式在开发中貌似不多用到,最多见的是就是在获取页面宽高的时候,好比文档宽高,可见区域宽高等。数组

IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差异的,在Standards Mode下对于盒模型的解释和其余的标准浏览器是同样,但在Quirks Mode模式下则有很大差异,而在不声明Doctype的状况下,IE默认又是Quirks Mode。因此为兼容性考虑,咱们可能须要获取当前的文档渲染方式。浏览器

document.compatMode正好派上用场,它有两种可能的返回值:BackCompatCSS1Compat
BackCompat:标准兼容模式关闭。浏览器客户区宽度是document.body.clientWidth;
CSS1Compat:标准兼容模式开启。 浏览器客户区宽度是document.documentElement.clientWidth
例如:app

function getViewport(){
ifdocument"BackCompat"    (.compatMode ==){
return      {
widthdocument        :.body.clientWidth,
heightdocument        :.body.clientHeight
      }
else    }{
return      {
widthdocument        :.documentElement.clientWidth,
heightdocument        :.documentElement.clientHeight
      }
    }
  }

10.跨浏览器获取Style

function getStyle(element, attr) {
iftypeofwindow'undefined'//W3C   (.getComputedStyle !=) {
returnwindownull       .getComputedStyle(element,)[attr];
elseiftypeof'undeinfed'//IE    }(element.currentStyle !=) {
return       element.currentStyle[attr];
    }
}

11.js动态插入css相关styleSheets,insertRule,addRule,还有删除样式:deleteRule,removeRule

标准浏览器支持 insertRule, IE低版本则支持 addRule。

12.获取页面的宽高

window.innerWidth,window.innerHeight与document.documentElement.clientWidth,document.documentElement.clientHeight

注:用jquery获取的页面的宽度页面不包括滚动条的宽度的

window.innerWidth与window.innerHeight(IE9及以上,谷歌,火狐识别,宽高包含滚动条的宽度)
document.documentElement.clientWidth与document.documentElement.clientHeight(IE,火狐,谷歌都能识别,宽高不包含滚动条的宽度)
若是页面没有滚动条:
window.innerWidth==document.documentElement.clientWidth,
window.innerHeight==document.documentElement.clientHeight(IE8及一下不识别window.innerHeight与window.innerWidth)

//跨浏览器获取视口大小function getInner() {
iftypeofwindow'undefined'//IE8及如下undefined   (.innerWidth !=) {
return       {
widthwindow           :.innerWidth,
heightwindow           :.innerHeight
        }
else    }{
return       {
widthdocument           :.documentElement.clientWidth,
heightdocument           :.documentElement.clientHeight
        }
    }
}

13.使用localStorage存储数据,存储位置在哪里?

这个是浏览器隔离的,每一个浏览器都会把localStorage存储在本身的UserData中,如chrome通常就是

C:\Users\你的计算机名\AppData\Local\Google\Chrome\User Data\Profile\Local Storage
若是要在浏览器查看,打开调试工具,在application选项卡下能够查看。

 知海匠库web前端课程http://www.zhihaijiangku.com,研发自网易系,项目教学,贴合企业用人需求,助你高薪就业。

相关文章
相关标签/搜索