zoukankan      html  css  js  c++  java
  • web知识总结

    概念

    对WEB标准以及W3C的理解与认识

    W3C主张结构、样式、行为分离
    分别对应html(xhtml)、css、ECMAScript


    javascript

    什么是原型和原型链

    Javascript中,所有数据类型都有一个默认属性:__proto__,这个叫做原型。而该隐藏属性中又包含其它数据对象的__proto__,这种原型的嵌套包含就叫原型链。

    prototype属性有什么作用

    本质上,js中的基本数据类型Functoin/Object/Number/Array/boolean都是函数。(用typeof 可以查看)而prototype是函数的专有属性,当该函数被实例化时,prototype属性可以被实例所继承,即

    var fun = function(){};
    var a = new fun();
    a.__proto__ === fun.prototype; //true
    

    改变作用域的方法

    apply

    通过传入对象参数改变原函数作用域为参数作用域。
    fun.apply(obj, [a,b,c]);
    调用fun函数,作用域为obj,参数为a/b/c。

    call

    同上,不过为不定参数。

    new

    通过实例化,将构造函数this指针指向实例函数。

    bind

    传入参数可以改变做用域甚至绑定参数

    判断数据类型的方法

    • toString.call 准确判断数据类型:Array、String、Object、RegExp、Number、Undefined、Null、Date、Boolean、Function
    • typeof 粗略判断数据类型:undefined、number、string、boolean、object、function
    • instanceOf 判断一个函数是否为另一个函数的实例。
    • Array.isArray ECMAScript 5 新增方法,用来判断参数是否为数组。
    • isFinite 判断是否为Infinity和null

    arguments是什么数据类型

    函数内部自动创建的一个类似数组的获取函数实参的隐藏对象。

    caller和callee有什么区别

    caller
    函数原型函数,返回该函数的调用函数。当该函数为顶层调用时,返回null
    callee
    arguments的默认属性,arguments.callee用来指向函数本身,常用在匿名函数和递归函数中。arguments.callee.length可以用获取函数形参长度。

    == 和 === 有什么区别

    • ‘1’ == 1 –> true
    • ‘1’ === 1 –> false
    • null == undefined –> true
    • null === undefined –> false
    • NaN == NaN –> false
    • NaN === NaN –> false
    • var a = b = {}; a === b –>true
    • var a = {}; var b = {}; a === b –> false
      == 先将两边值转换为同一类型的对象再进行 ===比较
      === 只用于浅拷贝的对象进行比较,不进行对象内容进行比较。只要引用地址不一致,即使内容一致也比较不出来。可以用来比较函数、数组等复杂对象,只是实用性不大。

    什么是变量提升

    变量在一个范围内声明的时候,javascript引擎会将这个声明移到范围顶部。

    var v='Hello World'; 
    (function(){ 
        console.log(v); 
        var v='I love you'; 
    })();//undefined
    

    这段代码等价于

    var v='Hello World'; 
    (function(){ 
        var v;
        console.log(v); 
        v='I love you'; 
    })();
    

    同样,匿名函数也受命名提升的影响

    (function(){ 
        foo(); 
        function foo(){ 
            console.log("我来自 foo"); 
        } 
    })(); //我来自 foo
    
    (function(){ 
        foo(); 
        var foo = function(){ 
            console.log("我来自 foo"); 
        } 
    })();//TypeError: foo is not a function
    

    js中有函数作用域但是没有块级作用域。

    var x = 1; 
    console.log(x); // 1 
    if (true) { 
        var x = 2; 
        console.log(x); //2 
    } 
    console.log(x);// 2 
    

    详细介绍

    css

    浏览器兼容性问题解决方法

    css hack
    样式文件

    通用 height: 100px;
    IE6 : _height: 100px;
    IE7 : +height: 100px;
    IE6、IE7 : 
    height: 100px;
    IE7、FF : height: 100px !important;

    引用注释

    除IE外都可识别

    css3常用属性

    border-radius

    圆角属性

    box-shadow

    用来制作阴影、模糊效果、以及内边框

    background-size

    设置背景图片大小

    transition

    制作简单动画,通过改变特定属性

    transform

    样式变换,缩放、旋转、平移

    清除浮动的方法

    clear:both

    浮动元素后建立空元素来清除浮动。非IE浏览器常用before和after伪类来实现。

    overflow:auto

    空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE

    工具

    chrome调试工具

    ctrl+shift+f

    搜索所有文件内容,速度很慢,不建议使用

    ctrl+p 或 ctrl+o

    按文件名全量搜索文件

    ctrl+shift+p 或 ctrl+shift+o

    在当前打开的js文件中搜索函数名称

    ctrl+shift+o 或 ctrl+shift+o

    在当前打开的css文件中按选择器搜索定义的样式


    博客:http://yalishizhude.github.io
    作者:亚里士朱德

  • 相关阅读:
    __dict__和dir()的区别:未完
    [leetcode] Subsets II
    [leetcode] Decode Ways
    [leetcode] Gray Code
    [leetcode] Merge Sorted Array
    [leetcode] Partition List
    [leetcode] Scramble String
    [leetcode] Maximal Rectangle
    [leetcode] Remove Duplicates from Sorted List II
    [leetcode] Remove Duplicates from Sorted List
  • 原文地址:https://www.cnblogs.com/wangjiaojiao/p/4936672.html
Copyright © 2011-2022 走看看