js基础知识点

1. 变量类型:数字 (number)、布尔(boolean)、字符串(string)、对象(object)、未定义(undefined)、函数(function)

2. parseInt() 类型转换  强制转换整数

3. NaN(not a number)非数字    NaN != NaN

4. isNaN()  判断是否是NaN

5. parseFloat() 强制类型转换为小数

6. 隐式类型转换:==  先转换类型再比较   ===不转换类型直接比较 如:减法

var a = 5, b = "5";  alert(a == b);   //true    alert(a === b);   //false

var a = "12",b = "5"  alert(a + b);  //125   alert(a - 7)  //7

"+"       表示:1. 字符串连接  2. 数字相加

"-"        表示:1. 数字相减

7. 变量作用域: 局部变量(只能定义在函数里) 全局变量(在任何地方都能用)

8. 闭包:子函数可以使用父函数的局部变量

switch (变量) {

        case 值1:

语句1

            break;

case 值2:

            语句2

            break;

        default:

           语句n

 }

var name = "abc",  sex = "男";

switch(sex){

case "男": alert(nanme + "先生,您好");

    break;

case "女": alert(nanme + "女士,您好");

    break;

default: alert(name + "您好")

}

9.三目运算符 ?: 与if else一样的作用

条件 ? 语句1:语句2    

if(条件){

    语句1

}else{

    语句2

}

例子:判断是单数还是双数

var a = 12;  a % 2 == 0 ? alert("双数") :alert("单数")

10. break 中断整个循环  continue  停止本次循环

11. 真    true    非零数字    非空字符串     非空对象

12. 假   false   数字零    空字符串   空对象   undefined

13. json  

var  a = 12, b = 5, c = 'abc';

1). var json = {a = 12, b = 5, c = 'abc'};

     json.b;  alert(json.a);

2). var json = {a = 12, b = 5, c= 7};

arry = [12,5,7];

alert(json['a']);   alert(json.length); //undefine

alert(arry[0]);    alert(arry.length);  //3

//循环   数组 0 - len ,  json = for in

//数组循环

for(var i = 0; i < arr.length; i++){

    alert("第" + i + "个东西:" + arry[i]);

}

for(var i in arry){

   alert("第" + i + "个东西:" + arry[i]);

}

//json循环

for(var i in json){

   alert("第" + i + "个东西:" + json[i]);

}

14. 数组

arguments  可变参  不定参

currentStyle[attr]   获取非行间样式

getComputedStyle(oDiv, false)    兼容FF 但IE9以下不兼容

function getStyle(obj,name){  //获取样式函数

     return obj,currentStyle[name];

}else{

return getComputedStyle(obj,false)[name];

}

//调用函数      getStyle(oDiv, "width");

push()  往末尾添加一个元素     unshift()   往头部添加一个元素

pop()  往末尾删除一个元素       shift()    往头部删除一个元素

splice()    从中间添加或删除数字元素

var arr = [1,2,3,4,5,6];

1). splice(起点,长度);    arr.splice(2,3);  //[1,2,6]

2). splice(起点,长度,元素);    arr.splice(2,0,"a","b","c");   //[1,2,a,b,c,3,4,5,6]

3). splice() 先删后添加    arr.splice(2,2,"a","b");   //[1,2,a,b,5,6]

4). concat(arr2);   数组链接

5). join(分隔符)   var arr = [1,2,3];  alert(arr.join("-"));  //[1-2-3]

6). sort()  排序  只认字符串

var arr = [12,8,99,19,112];

arr.sort(function(n1,n2){  

   //return n1-n2;

   if(n1

   else if(n1>n2){ return 1;}

   else{ return 0; }

})

15. 定时器

开启定时器

setInterval(函数名,毫秒);   间隔型    无数次执行

setTimeout(函数名,毫秒);    延迟型     只执行一次

关闭定时器

clearInterval(timer);

clearTimeout(timer);

获取系统时间:Date对象     显示系统时间: 空位补零   字符串连接

时  getHours();     分   getMinutes();     秒  getSeconds();

年  getFullYears();   月   getMonth() + 1;   日   getDate();     星期   getDay()

charAt()  获取字符串某一位   兼容IE9以下版本

offsetLeft()   获取物体的边距       offsetTop()    offsetWidth()    offsetHeight()  

无缝滚动原理:

1)  让ul一直向左移动  

2) 复制li :  (a).  innerHTML +=    (b)修改li的width   

3) 滚动过界后,重设位置:判断过界   

4)改变滚动方向:(a). 修改speed  (b). 修改判断条件  

5) 鼠标移入暂停:(a). 移入关闭定时器  (b). 移出重新开启定时器

16. DOM

子节点(只算第一层):childNodes  children

父节点:parentNode

节点类型:nodeType    nodeType == 3  为文本节点   nodeType == 1 为元素节点

定位的  offsetparent  获取元素在页面上的实际位置(根据谁定位获取的就是谁)

firstChild  首子节点   lastChild  尾子节点   兼容IE6-8

firstElementChild   lastElementChild   兼容IE9以上  FF  chrome

兼容所有浏览器的判断:

if( oUl.firstChild ){ 

     oUl.firstChild.style.color = "red"; 

}else{

     oUl.firstElementChild.style.color = "red"; 

}

兄弟节点(有兼容问题):nextSibling   previousSibling   nextElementSibling  previousElementSibling

//元素属性操作

设置   setAttribute(名称,值);

获取   getAttribute(名称);

删除  removeAttribute(名称);

第一种方式: oTxt.value = "asb";

第二种方式: oTxt["value"] = "asb";

第三种方式: oTxt.setAttribute("value","asb");

className

封装函数

function getByClass(oParent,sClass){

   var aResult = [];

   var aEle = oParent.getElementsByTagName("*");

   for(var i = 0; i < aEle.length; i++){

       if(aEle[i].className == sClass){ 

          aResult.push(aEle[i]); 

       }

   }

   return  aResult;

}

创建元素: createElement("li");

父级.appendChild(子节点);  添加元素   追加一个节点到末尾

插入元素   insertBefore(子节点,原有节点);   在已有元素前插入

删除元素  removeChild(节点);    删除一个节点

父级.appendChild(子节点);   先从父级上删除  再添加

父级.insertBefore(子节点,在谁之前);   倒序插入

文档碎片: document.createDocumentFragment()

表格的应用

获取   tBodies   (数组)   tHead  (元素)   tFoot   (元素)   rows  (行)   cells  (单元格)

toLowerCase()  转换大小写

模糊搜索  search()  找到并且返回所在的位置,若没找到返回-1

多关键词搜索  split()   切开

表单: onsubmit  提交时发生    onreset  重置时发生

你可能感兴趣的:(js基础知识点)