乱七八糟的知识点和一些面试题

通用面试题目

深入浅出妙用 Javascript 中 apply、call、bind

1.任何对象都有属性,但只有DOM对象才有属性节点(attributes);

 

2、行内元素(display: inline)的height、width、内/外边距的bottom、top(padding-top、padding-bottom、margin-top、margin-bottom)均不可改变

 

3、文本不换行,显示省略号

  .nowrap{

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;

  }

 

4、解释型语言的特性: 非独立性、效率低。

 

5、求数组的最大值

  function max(arr){

    //方法一:

    var max = Math.max.apply(null, arr);

    //方法二:

    max = Math.max(...arr);

    //方法三:

    arr.sort(function(a, b){ return b-a; })

    max = arr[0];

 

    return max;

  }

 

  6、CSS3新属性

   calc() = calc(四则运算): width: calc(100% - 100px);

 

 7、给出两个数R和n,输出R的n次方

function power(R, n){
  //判断R的小数点位数
  var str = R.toString();
  var index = str.indexOf(".");
  //计算小数点位数   
var num = str.length - index -1;   var i = Math.pow(10, num);   R = R * i;   var sum = Math.pow(R, n);   sum = sum / Math.pow(i, n)   return sum; }

 

8、在HTTP协议中:https://www.cnblogs.com/wqhwe/p/5407468.html

  1、HTTP协议是无状态的

  2、状态码307表示临时重定向

  3、RESTful接口中,利用HTTP协议的method字段来描述要对资源的操作方式,比如:GET表示获取资源, POST表示新增一个资源,PUT表示更新资源,DELETE表示删除资源等。

 

 9、DOM的操作,常用的有哪些,如何创建、添加、移除、移动、复制、查找节点?

  创建:

    creatDocumentFragment()   //创建一个DOM片段

    createElement()  //创建一个具体元素

    creatTextNode()  //创建一个文本节点

  添加:

    appendChild()  

  移除:

    removeChild()

  替换:

    replaceChild()

  插入:

    insertBefore()

  复制:

    cloneNode(true)

  查找:

    getElementById()

    getElementsByTagName()

    getElementsByClassName()

    getElementsByName()

 

10、CSS实现网页调用服务端字体:https://blog.csdn.net/qq_35772366/article/details/54896418

 

11、元素垂直居中(元素高度未知)

//1、table-cell
.middle{
  display: table-cell;
  vertical-align: middle;
}
//2、transform: translate(50%)
.middle{
  display: absolution;
  top: 50%;
  transform: translateY(-50%);
}
//display: flex
  display: flex;
  align-item: center;

 

12、主流浏览器

  浏览器     内核      特定属性前缀

  IE       trident        -ms-

  chrome   webkit/blink    -webkit-

  opera   presto/blink     -o-

  firefox   gecko       -moz-

  Safari   webkit       -webkit-

 

13、parseInt() 和 toString()

var num  = 10000;
num = parseInt(num, 2);  //把二进制变量num转换为10进制数字
            // 16
num.toString(16);      把十进制变量num转换为16进制字符串
            10

 

14、&& (且)、 ||(或) 和 | (按位或)、& (按位与)运算符

//&&运算符遇到假(false)就停
var num = 2 && 0 && 2;  //0

//||运算符遇真就停
var num = 0 || 2 || 3;  //2

//| 按位或运算符

  //参加运算的两个对象,按二进制位进行“或”运算。

  //运算规则:0|0=0;  0|1=1;  1|0=1;   1|1=1;

  //即 :参加运算的两个对象只要有一个为1,其值为1

var num = 3 | 4;  //7
//3 => 011
//4 => 100

//&按位与运算符
  //运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;

     // 即:两位同时为“1”,结果才为“1”,否则为0

  var num = 3 & 4;  //0

    //3 => 011

    //4 => 100

 

15、变量声明  声明提升

   函数声明  整体提升

 

16、任何未经声明就直接赋值的变量归window所有; 

  一切声明的全局变量,全是window的属性

 

17、并不是所有对象都继承自Object(Object.create(null));

    

17、JavaScript语言可以正常计算的范围是:小数点前后十六位

 

18、为什么  0.1+0.2 != 0.3 ()

 

 19、call / apply 改变this指向

    call( object, 参数 ) :需要把实参按照形参的个数传进去

    apply( object, [...] ) :需要传一个arguments

      共同点:功能均是改变this指向

      不同点:传参列表不同

 

20、非首位子元素选择符: .list li + li (元素list类任意跟在li后面的li)

 

21、数字 + 字符 = 字符

  数字 + Boolean = 数字

  数字 + null = 数字

  数字 + undefined =  NaN

 

22、函数名.length   =>  形参数量

  arguments.length => 实参数量

 

23、匿名函数表达式(简称:函数表达式)

  命名函数表达式

 

24、数组常用的方法:

  改 变 原 数 组: push()  pop()  shift()  unshift()  splice()  reverse()  

  不改变元素组:concat()  join()  split()  toString()  slice()

 

25、

  4>3>2  => false

  应依次计算: 4>3返回true; 

        true>2 = 1>2 返回false

 

26、命名空间:管理变量,防止污染全局,适用于模块开发

var huangInit = (function() {
  var name = "huang";
  function callName() { console.log(name) }
  return {callName : callName}
}())

var huang = huangInit();

 

27、单词太长换行显示:word-wrap:break-word;word-break:break-all;

 

28、jQuery获取定位元素的top和left值: $("selector").position().left/top

 29、圣杯布局、双飞翼布局、Flex布局和绝对定位布局的几种经典布局的具体实现示例

posted @ 2018-09-04 10:20  0恋晨曦0  Views(177)  Comments(0Edit  收藏  举报