前端面试题

1 、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?

标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin

2、 box-sizing属性?

用来控制元素的盒子模型的解析模式,默认为content-box
context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽
border-box:IE传统盒子模型。设置元素的height/width属性指的是border + padding + content部分的高/宽

3、 CSS选择器有哪些?哪些属性可以继承?

CSS选择符:id选择器(#myid)、类选择器(.myclassname)、标签选择器(div, h1, p)、相邻选择器(h1 + p)、子选择器(ul > li)、后代选择器(li a)、通配符选择器(*)、属性选择器(a[rel=”external”])、伪类选择器(a:hover, li:nth-child)

可继承的属性:font-size, font-family, color

不可继承的样式:border, padding, margin, width, height

优先级(就近原则):!important > [ id > class > tag ]
!important 比内联优先级高

4、 CSS3新增伪类有那些?

p:first-of-type 选择属于其父元素的首个元素
p:last-of-type 选择属于其父元素的最后元素
p:only-of-type 选择属于其父元素唯一的元素
p:only-child 选择属于其父元素的唯一子元素
p:nth-child(2) 选择属于其父元素的第二个子元素
:enabled :disabled 表单控件的禁用状态。
列:为所有 type=“text” 的已启用的 input 元素设置背景色:

input[type="text"]:enabled
		{ 
			background-color: #ff0000;
		}
所有主流浏览器均支持 :enabled 选择器,除了 IE8 及更早的版本。

:checked 单选框或复选框被选中。

5、作用域和值类型引用类型的传递


var num1=55
var num2=66
function f1(num,num1){
	//var num=55
	//var num1=66
	num=100;//100
	num1=100;//100
	num2=100;//改变的是函数外的num2,//100
	console.log(num);//100
	console.log(num1);//100
	console.log(num2);//100
}
f1(num1,num2)
console.log(num)//报错,num is not defined
console.log(num1)//55
console.log(num2)//100

6、typeof

一、typeof可用来检测数据类型

typeof 123 //number
typeof '123' //string
typeof true //boolean
typeof false //boolean
typeof undefined //undefined
typeof Math.abs //function
typeof function () {}  //function

二、typeof 无法区分null、Array和通常意义上的object

typeof null  //object
typeof [] //object
typeof {} //object

三、

typeof new Number(123) //object
typeof Number(123) //number

typeof new Boolean(true) //object
typeof Boolean(true) //boolean

typeof new String(123)  //object
typeof String(123) //string

四、除了null和undefined外,对象都有toString()方法,并且number对象调用toString()报错

123.toString() //报错
123..toString() //'123',注意是两个点
(123).toString() //'123'

总结

  • typeof操作符可以判断出number、boolean、string、function、underfined
  • 可以用String()或调用某个对象的toString()方法来转换任意类型到string
  • 用parseInt()或parseFloat()来转换任意类型到number
  • 判断Array要使用Array.isArray(arr)
  • 判断null请使用thisVal===null
  • 判断某个全局变量是否存在用typeof myVar ===‘undefined’
  • 通常不必把任意类型转换为boolean在判断,因为可以直接写if(myVar){…}
  • 不要使用new Number()、new Boolean() 、new String()创建包装对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值