JS---部分基础面试题---解析

以下( )表达式产生一个0~7之间(含0,7)的随机整数.
A. Math.floor(Math.random()*6)
B. Math.floor(Math.random()*7)
C.Math. floor(Math.random()*8)
D.Math.ceil(Math.random()*8)
解析: 此题选C。首先random是产生一个0到1且不包含1的随机小数的一个半开区间,若要取到n,则需要*(n+1)
Math.floor()方法是向下取整,是对于坐标轴向下取整,会去掉小数点后面的内容。Math.ceil() 方法是向上取整, 即小数部分直接舍去,并向正数部分进1,是对于坐标轴向上取整

关于变量的命名规则,下列说法正确的有哪些()
A)首字符必须是大写,小写的字母,下划线(_)或美元符($)。
B)后续的字符可以是字母,数字,下划线或美元符。
C)变量名称不能是保留字。
D)长度是任意。
E)不区分大小写
**解析:**此题选A、B、C。
变量名命名规范r如下:
1、变量命名必须以字母、下划线_或者”$为开头。其他字符可以是字母、_、美元符号或数字。
2、变量名中不允许使用空格和其他标点符号,首个字不能为数字。
3、变量名长度不能超过255个字符。
4、变量名区分大小写。(javascript是区分大小写的语言)
5、变量名必须放在同一行中
6、不能使用脚本语言中保留的关键字、保留字、true、false 和 null 作为标识符。

css 中可继承的属性有哪些()
A. height
B. font-size
C. background-color
D. color
解析: 此题选B、D。
css有继承性的属性有以下内容

1、文本系列属性

text-indent:文本缩进

text-align:文本水平对齐

line-height:行高

word-spacing:增加或减少单词间的空白(即字间隔)

letter-spacing:增加或减少字符间的空白(字符间距)

text-transform:控制文本大小写

direction:规定文本的书写方向

color:文本颜色

2、字体系列属性

font:组合字体

font-family:规定元素的字体系列

font-weight:设置字体的粗细

font-size:设置字体的尺寸

font-style:定义字体的风格

font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。

font-stretch:对当前的 font-family 进行伸缩变形。所有主流浏览器都不支持。

font-size-adjust:为某个元素规定一个 aspect 值,这样就可以保持首选字体的 x-height。

3、表格布局属性

caption-side:设置表格标题的位置。

border-collapse:设置表格的边框是否被合并为一个单一的边框,还是象在标准的 HTML 中那样分开显示。

border-spacing:设置相邻单元格的边框间的距离(仅用于"边框分离"模式)。

empty-cells:设置是否显示表格中的空单元格(仅用于"分离边框"模式)。

table-layout:为表设置表格布局算法。

4、列表布局属性:

list-style-type:设置列表项标记的类型。

list-style-image:使用图像来替换列表项的标记。

list-style-position:指示如何相对于对象的内容绘制列表项标记。

list-style:简写属性在一个声明中设置所有的列表属性。

5、元素可见性:visibility

6、生成内容属性:quotes

7、光标属性:cursor

8、页面样式属性:page、page-break-inside、windows、orphans

9、声音样式属性:
speakspeak-punctuationspeak-numeralspeak-headerspeech-ratevolumevoice-familypitchpitch-rangestressrichnessazimuthelevation

以下关于盒子模型描述正确的是()
A.标准盒子模型中:盒子的总宽度 = 左右margin + 左右border + 左右padding + width
B.IE盒子模型中:盒子总宽度 = 左右margin + 左右border + width
C.标准盒子模型中:盒子的总宽度 = 左右margin + 左右border + width
D.IE盒子模型中:盒子总宽度 = width
解析: 此题选A
标准盒子模型中:盒子的总宽度 = 左右margin + 左右border + 左右padding + width
IE盒模型中:盒子总宽度 = margin-left + width + margin-right

以下表达式输出是()
parseInt(3,8);parseInt(3,2);parseInt(3,-1);
A. 3 3 3
B.3 3 NaN
C.3 NaN NaN
D.以上都是不对
解析: 此题选C。
parseInt()方法的第二个参数为一个2到36之间的整数值,用于指定转换中采用的基数。比如参数"10"表示使用我们通常使用的十进制数值系统。省略该参数时,默认为10.特殊情况参数为0时,类似于省略。超出参数范围,无法转换,最终输出结果会变成NaN。当第一个参数有多位,parseInt()会根据第二个参数来判断,只会转换满足的字符,后面不满足的不会进行转换。
例如parseInt('dsff66',16) ==》 13。因为十进制最大的数字是9,但是到了十一进制往上,最大的数字是两位数了,这当然不行,所以从10开始往上,就用字母代替,a=10,b=11…z=35来表示。

清楚浮动的几种方式,各自的优点?
①给父元素单独定义高度
  优点:简单快速、代码少。
  缺点:无法进行响应式布局。
②在标签结尾处加空div标签<div style="clear: both"></div>
  优点:简单快速、代码少,兼容性较高。
  缺点:增加空标签,不利于页面优化。
③父级定义overflow:hidden
  优点:简单快速、代码少,兼容性较高。
  缺点:超出部分被隐藏了,在布局的时候要注意。
④父级定义class=“clearfix”,使用after伪类和zoom

.clearfix:after{
	content:"";
	display:block;
	clear:both;
	height:0;
	overflow:hidden;
	visibility:hidden;
}
.clearfix{
	zoom:1;
}

优点:写法固定,没有多余结构,兼容性高。
缺点:代码多。
第四种通常情况下用的最多

Javascript中创建对象的几种方法

一、字面量模式创建 :var obj = {}
二、调用系统构造函数创建 :var obj=new Object()
三、使用原型对象的方式 Object.creacr(obj/null)
四、工厂模式创建:

function createPerson(name,age){
    var p=new Object();
    p.name=name;
    p.age=age;
    p.hobby=function(){
        console.log("打篮球");
    };
}
var person1=createPerson("小明","20");
var person2=createPerson("小米","18");

五、自定义构造函数创建:
构造函数就是一个普通的函数,创建方式和普通函数没有区别,不同的是构造函数习惯上首字母大写。另外就是调用方式的不同,普通函数是直接调用,而构造函数需要使用new关键字来调用。

function Person("name","age"){
    this.name=name;
    this.age=age;
    this.hobby=function(){
        console.log("打篮球");
    };
}
var person1=new Person("小明","20");
var person2=new Person("小米","18");

call和apply的区别?
语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments) == this.foo(arg1, arg2, arg3);
相同点:两个方法产生的作用是完全一样的,都是改变了this指向。
不同点:方法传递的参数不同。
call方法:
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
apply方法:
语法:apply([thisObj[,argArray]])

typeof(null), 
typeof(undefined),
typeof(NaN),
typeof(NaN==NaN),
typeof([1,2,3])

写出以上代码执行结果?
object、undefined、number、boolear、object
解析:
JS中的数据类型有:number、string、undefined、null、number、string、undefined
typeof的返回类型有:number、string、undefined、number、string、undefined
typeof(null)会返回object这是一历史遗留问题,NaN是一个不是数字的数字,所以它属于number类型,数组的本质也是一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值