JS基础

1.获取非行间样式

   //获取非行间css样式

   function getStyle(obj,attr){//获取非行间样式,obj是对象,attr是值

       if(obj.currentStyle){        //针对ie获取非行间样式

     returnobj.currentStyle[attr];

   }else{

    returngetComputedStyle(obj,false)[attr];      //针对低版本FireFox

   };

  };

//为对象写入/获取css样式

function css(obj,attr,value){     //对象,样式,值。传2个参数的时候为获取样式,3个是设置样式

if(arguments.length == 2){      //arguments参数数组,当参数数组长度为2时表示获取css样式

returngetStyle(obj,attr);            //返回对象的非行间样式用上面的getStyle函数

}else{

if(arguments.length == 3){      //当传三个参数的时候为设置对象的某个值

obj.style[attr] = value;

};

};

};

window.onload = function(){

varoDiv = document.getElementById("div1");

varoBtn = document.getElementById("btn");

oBtn.onclick = function(){

alert(getStyle(oDiv,"height"));

css(oDiv,"background","green");

alert(css(oDiv,"width"));

};

};


2.什么是真假?

真:true:非零数字,非空字符串,非空对象

假:false:数字零,空字符串,空对象,null,undefined


3.String 对象属性

(1)charAt:返回在指定位置的字符。

(2)IndexOf:.检索字符串。

(3)substring:提取字符串中两个指定的索引号之间的字符。

(4)replace:替换

(5)slice:提取字符串的片断,并在新的字符串中返回被提取的部分。

(6)lastIndexOf:从后向前搜索字符串。

(7)toLowercase:把字符串转换为小写。

(8)toUppercase:把字符串转换为大写。

(9)link:将字符串显示为链接。

(10)split:把字符串分割为字符串数组。

(11)substr:从起始索引号提取字符串中指定数目的字符。

(12)concat:连接字符串。

(13)toString:返回字符串.


4.Array 对象方法

(1)join:把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

(2)pop:删除并返回数组的最后一个元素。

(3)sort:对数组的元素进行排序。

(4)push:向数组的末尾添加一个或更多元素,并返回新的长度。

(5)unshift:向数组的开头添加一个或更多元素,并返回新的长度。

(6)shift:删除并返回数组的第一个元素。

(7)reverse:颠倒数组中元素的顺序。

(8)slice:从某个已有的数组返回选定的元素。

(9)splice:删除元素,并向数组添加新元素。


5.ajax的两种解析方法

ajax的全称:asynchronous javascript and xml

(1)eval: .var dataObj=eval("("+data+")");//转换为json对象

(2) .data =(new Function("","return "+json))();   //使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析\


6.javascript的事件

onclick             鼠标点击时触发此事件

ondblclick         鼠标双击时触发此事件

onmousedown  按下鼠标时触发此事件

onmouseup       鼠标按下后松开鼠标时触发此事件

onmouseover     当鼠标移动到某对象范围的上方时触发此事件

onmousemove    鼠标移动时触发此事件

onmouseout        当鼠标离开某对象范围时触发此事件

onkeypress          当键盘上的某个键被按下并且释放时触发此事件.

onkeydown           当键盘上某个按键被按下时触发此事件

onkeyup                当键盘上某个按键被按放开时触发此事件

onabort                  图片在下载时被用户中断

onbeforeunload     当前页面的内容将要被改变时触发此事件

onerror                   出现错误时触发此事件

onload                   页面内容完成时触发此事件

onmove                 浏览器的窗口被移动时触发此事件

onresize                 当浏览器的窗口大小被改变时触发此事件

onscroll                 浏览器的滚动条位置发生变化时触发此事件

onstop                   浏览器的停止按钮被按下时触发此事件或者正在下载的文件被中断

onunload                当前页面将被改变时触发此事件

onblur                     当前元素失去焦点时触发此事件

onchange               当前元素失去焦点并且元素的内容发生改变而触发此事件

onfocus                  当某个元素获得焦点时触发此事件

onreset                   当表单中RESET的属性被激发时触发此事件

onsubmit                 一个表单被递交时触发此事件

滚动字幕事件onbounce   在Marquee内的内容移动至Marquee显示范围之外时触发此事件

onfinish                   当Marquee元素完成需要显示的内容后触发此事件

onstart                     当Marquee元素开始显示内容时触发此事件

onbeforecopy           当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发此事件

onbeforecut              当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发此事件

onbeforeeditfocus     当前元素将要进入编辑状态

onbeforepaste           内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发此事件

onbeforeupdate         当浏览者粘贴系统剪贴板中的内容时通知目标对象

oncontextmenu          当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件

oncopy                        当页面当前的被选择内容被复制后触发此事件

oncut                          当页面当前的被选择内容被剪切时触发此事件

ondrag                       当某个对象被拖动时触发此事件 [活动事件]

ondragdrop                一个外部对象被鼠标拖进当前窗口或者帧

ondragend                当鼠标拖动结束时触发此事件,即鼠标的按钮被释放了

ondragenter             当对象被鼠标拖动的对象进入其容器范围内时触发此事件

ondragleave             当对象被鼠标拖动的对象离开其容器范围内时触发此事件

ondragover               当某被拖动的对象在另一对象容器范围内拖动时触发此事件

ondragstart                当某对象将被拖动时触发此事件

ondrop                      在一个拖动过程中,释放鼠标键时触发此事件

onlosecapture           当元素失去鼠标移动所形成的选择焦点时触发此事件

onpaste                     当内容被粘贴时触发此事件

onselect                     当文本内容被选择时的事件

onselectstart              当文本内容选择将开始发生时触发的事件

onafterupdate           当数据完成由数据源到对象的传送时触发此事件

oncellchange             当数据来源发生变化时

ondataavailable         当数据接收完成时触发事件

ondatasetchanged     数据在数据源发生变化时触发的事件

ondatasetcomplete     当来子数据源的全部有效数据读取完毕时触发此事件

onerrorupdate             当使用onBeforeUpdate事件触发取消了数据传送时,代替onAfterUpdate事件

onrowenter                  当前数据源的数据发生变化并且有新的有效数据时触发的事件

onrowexit                       当前数据源的数据将要发生变化时触发的事件

onrowsdelete                 当前数据记录将被删除时触发此事件

onrowsinserted               当前数据源将要插入新数据记录时触发此事件

外部事件onafterprintI      当文档被打印后触发此事件

onbeforeprint                   当文档即将打印时触发此事件

onfilterchange                  当某个对象的滤镜效果发生变化时触发的事件

onhelpIE4、N当浏览者按下F1或者浏览器的帮助选择时触发此事件

onpropertychange            当对象的属性之一发生变化时触发此事件

onreadystatechange        当对象的初始化属性值发生变化时触发此事件


7.事件委托

什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。也就是:利用冒泡的原理,把事件加到父级上,触发执行效果。


8.i(for循环中的i什么情况不能用)?

    循环中加事件不能用i,

    解决方法:自定义属性,封闭空间(循环中定时器,循环加事件。自定义属性第一次加载会过滤掉,所以别加载行间)


9.this问题(this什么时候不能用)?

(1)定时器中不能用this

(2)事件中嵌套一层函数

(3)行间中不能嵌套this

(4)attchevent不能用ths


10.严格模式

  好处:局部变量,this指向window的buger

 不加  var声明变量的buger

 不能用  with

预解析:变量提前,但不赋值


11.什么是堆栈?

堆:是引用类型   先进先出  

栈:是基本类型    先进先出

你可能感兴趣的:(JS基础)