javascript基础整理(面试必备)
(1)js的数据类型有哪些?
js中有5种基本数据类型:Undefined、Null、Boolean、Number和String。
一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。
基本数据类型
undefined
在使用var声明变量,但未对其加以初始化时,这个变量的类型就是undefined,且其默认初始化值为undefined。
对未声明与初始化的变量,直接使用,那么这个变量的类型也是undefined,但是没有默认初始化值。
- null
- null类型的默认值是null,从逻辑角度讲,是表示一个空对象指针。
js高级程序上有讲到,undefined类型是派生自null的,不严格的说二者都是指没有明确赋值的类型,但是细分之后,undefined类型,被用来形容未经初始化的变量,null 类型被用来形容空对象指针。
所以,如果定义的变量准备在将来用于保存对象(即复杂的数据类型object),那么就该将该变量初始化为null。
- 区分,当一个变量声明后,未初始化,则该值为undefined,如果这个值是为了保存对象,则修改其默认初始化的值,改为null。 所以当检测其类型时,会显示类型为object。
- *所以有时候,当问到js基本数据类型时,会忽略null。
//null
var car=null;
alert('car的类型为:'typeof car)
boolean
即布尔类型,该类型有两个值:true
false
Bloolean()函数,可以将其他类型的值转换为布尔类型。
number
该类型的表示方法有两种形式,第一种是整数,第二种为浮点数。
string
字符串类型是最熟悉不过的啦,至于用单引号,还是双引号,在js中还是没有差别的。记得成对出现。
复杂的数据类型
object(JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。在 JavaScript 中,对象是拥有属性和方法的数据)
该类型实例化的对象,是一组数据和功能(函数)的集合。
实例化对象的过程有两种,一种是通过new操作符,一种是通过对象字面量表示法。
object类型是最基本的类型,我们可以在其基础上继承出更多的类型,像我们知道的Array()、Date()、还有有意思的function()类型,都是从object继承的,而且这些类型都在程序员使用前被默认设置了属性和方法,供程序员调用.如String 对象,Date(日期),对象Array(数组),对象Boolean(逻辑),对象Math(算数),对象RegExp 对象(正则表达式)
(2)如何理解javascript的bom,dom?
dom:通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素,HTML DOM 模型被构造为对象的树,文档,元素,属性,文本,
getElementById,getElementsByTagName
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
JavaScript 能够改变页面中的所有 HTML 元素,
getElementById(“”).innerH="改变元素的内容为";
JavaScript 能够改变页面中的所有 HTML 属性,
getElementById(“”).属性名(src)=“”
JavaScript 能够改变页面中的所有 CSS 样式
getElementById(“”).style.样式名(color)=""
JavaScript 能够对页面中的所有事件做出反应
onblur(元素失去焦点),onchange(元素内容改变),onclick(元素被点击),onfocus(元素获得焦点),onmousedown(鼠标按下)
bom:浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”,window,screen,location,history,cookies
(3)获取元素的位置:
为了方便理解,我们需要了解几个基础概念,每个HTML元素都有下列属性
offsetWidth |
clientWidth |
scrollWidth |
offsetHeight |
clientHeight |
scrollHeight |
offsetLeft |
clientLeft |
scrollLeft |
offsetTop |
clientTop |
scrollTop
|
1. clientHeight和clientWidth用于描述元素内尺寸,是指 元素内容+内边距 大小,不包括边框(IE下实际包括)、外边距、滚动条部分
2. offsetHeight和offsetWidth用于描述元素外尺寸,是指 元素内容+内边距+边框,不包括外边距和滚动条部分
3. clientTop和clientLeft返回内边距的边缘和边框的外边缘之间的水平和垂直距离,也就是左,上边框宽度
4. offsetTop和offsetLeft表示该元素的左上角(边框外边缘)与已定位的父容器(offsetParent对象)左上角的距离
5. offsetParent对象是指元素最近的定位(relative,absolute)祖先元素,递归上溯,如果没有祖先元素是定位的话,会返回null
(4)javascript获取当前的日期
new一个Date()对象
getFullYear(),getMonth+1,getDate(),getDay()周几,getMinutes,getSeconds();