css js基础面试题

1.css选择器

1 CSS选择符有哪些
2  
3   通配符选择器(*4   id选择器(#classId)
5   类选择器(.className)
6   标签选择器(div,h1,p,span,table)
7   子选择器(ul > li)
8   后代选择器(li a)
9   伪类选择器(a:hover,li:nth-child)
 1 优先级权重计算
 2  important的权重为     1,0,0,0
 3   ID的权重为            0,1,0,0
 4   类的权重为             0,0,1,0
 5   伪类的权重为           0,0,1,0
 6   属性的权重为           0,0,1,0
 7   标签的权重为           0,0,0,1
 8   伪对象的权重为         0,0,0,1
 9   通配符的权重为         0,0,0,0
10  
11   就近原则,同权重情况下以样式定义最近者为准;
12   载入样式以最后载入的定位为准;
13   优先级:
14       //!important > id > class > tag
15       //important 比 内联优先级高
16       important > 内联样式 > ID > 类 | 伪类 | 属性选择 > 标签 | 伪元素 > 继承 > 通配符

2.盒子模型

 

(1)是什么:每个元素被表示为一个矩形的盒子,由四部分组成:内容(content)、内边距(padding)、边框(border)、外边距(margin)。它在页面中所占的实际大小(宽高)是content+padding+border+margin之和。

(2)盒模型有两种:标准盒模型(W3C盒模型)、IE盒模型。

 

(3)两种盒模型的区别:标准盒模型内容大小就是content大小,而IE盒模型内容大小则是content+padding+border总的大小。

(4)怎么设置两种盒模型:通过设置box-sizing属性为content-box(默认值,标准盒模型)、border-box(IE盒模型)。

(5)JS怎么获取和设置box的宽高

(6)box-sizing使用场景:若设置子元素的margin或border时可能会撑破父元素的尺寸,就需要使用box-sizing:border-box来将border包含进元素的尺寸中。
行内元素有哪些?块级元素有哪些?
(1)行内元素:a,b,span,img,input,strong,label,button,select,textarea,em

(2)块级元素:div,ul(无序列表),ol,li,dl(自定义列表),dt(自定义列表项),dd(自定义列表项的定义),p,h1-h6,blockquote(块引用)

3.常用浏览器,内核

 

(1)Trident内核:(国产的绝大部分浏览器)IE,360,搜狗

 Gecko内核:Firefox,NetScape6及以上

 Presto内核:Opera7及以上

 Webkit内核:(国产大部分双核浏览器其中一核)Safari(苹果),Chrome

(2)浏览器内核:主要分成两部分:渲染引擎和JS引擎。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,

内核就倾向于只指渲染引擎

(3)渲染引擎:负责取得网页内容(HTML,XML,图像等)、整理讯息(加入CSS等),以及计算网页的显示方式,后会输出至

显示器或打印机。

(4)JS引擎:解析和执行JavaScript来实现网页的动态效果。

 

4.如何居中div?如何让绝对定位的div居中?

 

 1 div:
 2 border: 1px solid red;
 3 margin: 0 auto; 
 4 height: 50px;
 5 width: 80px;
 6 
 7 绝对定位的左右居中:
 8 border: 1px solid black;
 9 position: absolute;
10 width: 200px;
11 height: 100px;
12 margin: 0 auto;
13 left: 0;
14 right: 0; 

 

 

 

 

5.如何检查一个数字是否为整数?

 

1 function isInt(num) {
2  return num % 1 === 0;
3 }
4 console.log(isInt(4)); // true
5 console.log(isInt(12.2)); // false
6 console.log(isInt(0.3)); // false

 

6.js 字符串操作函数

 

 1 concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。
 2 
 3 indexOf() – 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 4 
 5 charAt() – 返回指定位置的字符。
 6 
 7 lastIndexOf() – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 8 
 9 match() – 检查一个字符串是否匹配一个正则表达式。
10 
11 substr() 函数 -- 返回从string的startPos位置,长度为length的字符串
12 
13 substring() – 返回字符串的一个子串。传入参数是起始位置和结束位置。
14 
15 slice() – 提取字符串的一部分,并返回一个新字符串。
16 
17 replace() – 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
18 
19 search() – 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -120 
21 split() – 通过将字符串划分成子串,将一个字符串做成一个字符串数组。
22 
23 length – 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
24 
25 toLowerCase() – 将整个字符串转成小写字母。
26 
27 toUpperCase() – 将整个字符串转成大写字母。

 

7.变量的作用域

 

1 1、函数内部可以读取函数外部的全局变量;在函数外部无法读取函数内的局部变量。
2 
3 2、函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
4 
5  5、使用闭包的注意点
6 
7 1)滥用闭包,会造成内存泄漏:由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
8 
9 2)会改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。

 

8.null和undefined的区别 1 null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

 2 
 3 当声明的变量还未被初始化时,变量的默认值为undefined。 null用来表示尚未存在的对象
 4 
 5 undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
 6 
 7 (1)变量被声明了,但没有赋值时,就等于undefined。
 8 
 9 (2)调用函数时,应该提供的参数没有提供,该参数等于undefined。
10 
11 (3)对象没有赋值的属性,该属性的值为undefined。
12 
13 (4)函数没有返回值时,默认返回undefined。
14 
15 null表示"没有对象",即该处不应该有值。典型用法是:
16 
17 (1) 作为函数的参数,表示该函数的参数不是对象。
18 
19 (2) 作为对象原型链的终点

 

9. javascript语言特性中,有很多方面和我们接触的其他编程语言不太一样,请举例
1 javascript语言实现继承机制的核心就是 
2  1  (原型),而不是Java语言那样的类式继承。Javascript解析引擎在读取一个Object的属性的值时,会沿着 
3  2  (原型链)向上寻找,如果最终没有找到,则该属性值为 
4  3  undefined;如果最终找到该属性的值,则返回结果。与这个过程不同的是,当javascript解析引擎执行“给一个Object的某个属性赋值”的时候,如果当前Object存在该属性,则改写该属性的值,如果当前的Object本身并不存在该属性,则赋值该属性的值。

 10.冒泡排序算法

 

 1 var array = [5, 4, 3, 2, 1];
 2 var temp = 0;
 3 for (var i = 0; i <array.length; i++){
 4 for (var j = 0; j <array.length - i; j++){
 5 if (array[j] > array[j + 1]){
 6 temp = array[j + 1];
 7 array[j + 1] = array[j];
 8 array[j] = temp;
 9  }
10 }
11 }

 

 

 


 

 

 

posted @ 2019-05-29 20:11  啊啊啊于远文  阅读(1525)  评论(0编辑  收藏  举报