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()创建包装对象