JavaScript 知识

来源:互联网 发布:建筑公司法务 知乎 编辑:程序博客网 时间:2024/05/21 18:36

一、基本知识

1、javaScript的组成:ECMAScript js语言的解释器;DOM(Document  Object  Model)DOM赋予了js操作html的能力;BOM (Browser Object Model)可以让js操作浏览器。
2、javaScript变量类型:number(数字)、string(字符串)、boolean(布尔值)、function(函数)、object(对象)、undefined(未定义),可以使用alert(typeof  a);来检测a的类型。变量本身是没的类型,只有给它赋值时才会有相应的类型。一个变量最好只存放一种类型的数据。

3、显示类型转换:字符串转成数字parseInt('1'),从左到右去扫描字符串,如果发现不是数字就会跳出来,返回已经扫描的数字。NaN (not a number),NaN与NaN一般不是相等的。判断是否为NaN的方法是:isNaN();parseFloat()的作用与parseInt()的方法都差不多,只是精度的区别。
4、隐式类型转换:== 先转换类型再比较   === 不转换类型,直接比。— 先转成数字再做减法。

5、变量的作用域:局部变量,定义在函数内部,只能在定义的函数里面使用;全局变量,定义在函数外面,可以供所有函数使用。

6、闭包:子函数可以使用父函数的局部变量。

function aaa(){   //这里函数bbb中能使用aaa中的局部变量。

     var b='abc';

  function bbb(){

       alert(b);

    }

}
7、运算符号:

算术  +加、  —减 、*乘、  /除、 %取模

赋值 = 、+=、-=、/=、%=  

关系 < 、>、<=、 >=、 == 、===、 !=、 !==

逻辑 && || !

运算符号优先级:括号

8、流程控制

判断 : if、 switch 三目运算符号(条件 ?  语句:语句);

循环:while 、for

跳出: break 中断所有的循环,continue 仅仅跳过本次循环

9、遍历的方法  数组 for(var i=0;i<arr.length;i++){}   for(var i in arr);   Json   只能用for in 来遍历 for(arr ob in json){};

二、函数

1、javaScript有两种函数:实名函数(funtion  getobj(){ })、匿名函数;(Obtn.onclick=function(){ });

2、javaScript的函数传参数(funtion getObj( a,b){}里面参数可以是一个也可也是多个)、如果函数参数个数不固定,我们可以使用function getobj(){alert(arguments)};这时表示参数的个数个变的,arguments是一个存放参数的数组。

3、函数返回值(function getObj(){  return 12}当我们调用这个函数时会返回这个值,返回值只能有一个。)  

三、数组

1、数组的定义 var arr=[1,2,3];    或 var arr =new Array(1,2,3);

2、数组的重要属性arr.length;这里的长度不但不可获取还可以设置,比如可以清空数组的值:arr.length=0;

3、数组的添加和删除:arr.push(..)往数组的尾部添加内容,arr.upshift(..)从头部添加;arr.pop(..)数组的尾部删除,arr.shift(..)从头部删除。删除.arr.splice(起点,长度)   插入 arr.splice(起点,长度,元素)这些元素都会被插入到制定的位置; 替换.arr.splice(起点,长度,元素1,元素2)从起点开始替换;

4、数组的排序、连接、分隔符

连接  两个数组a、b     a.contact(b);

排序 arr.sort();//本质是对字符串,我们可以改变比较规则,如下
arr.sort(function(n1,n2){

   if(n1<n2){

        return -1;

      }else if(n1>n2){

        return 1;

      }else{

        return 0;

      }

也可以这样写:return n1-n2;

)

join(分隔符)  arr.join('-');

四、获得元素的几种方式:

1、document.getElementById(" ");获取id元素,返回值是唯一的,因为在css中的id元素只能是唯一的。

2、document.getElementsByTagName(" ");获取一组元素,返回的是一个数组;这里的TagName表示html中的标签,比如:a、div、input,也可以表示标签里面和一些属性。

3、可以根据className选择元素,oDiv.className='...';

五、定时器

1、开启定时器:setInterval(function(){},time);间隔型的,每间隔time时间就会执行function(){}函数,执行多次。setTimeout(function(){},time);延时型的,延时time时间执行行,这个只会执行一次。  

2、关闭定时器:每个定时器都会有一个返回值,var timerId=setInterval(function(){},time);当我们要关闭一个定时器时,我们可以调用clearInterval(timerId)这个函数去关闭定时器。同样setTimeout函数同样也返回一个值,这时我们只需要调用clearTimeout(timerId),也可以关闭这个定时器。

六、DOM

1、DOM节点:

childNodes表示一个节点的子节点数组,如果

<ul>1

<li>2</li>3

<li>4</li>5

</ul>

这时我们获取ul的子节点会有5个,五个节点的位置如上,这里我们需要过滤掉文本节点,这时需要用到nodeType 这个属性

nodeType表示获取元素的类型,nodeType=3 -->文本节点,nodeType=1 -->元素节点。children方法只会获得元素节点,不会获得文本节点。这里的子节点只会算法第一层的子。

firstChild 、firstElementChild 、lastChild 、lastElementChild分别表示第一个元素子节点,第一个子节点、最后的一个子节点、最后的一个子节点。两种方式是用来解决兼容性问题。

nextSibling、nextElementSibling、previousSibling、 previousElementSibling表示兄弟节点。

父节点:parentNode父节点,直接父节点,offsetParent用来寻找用于定位的父节点。

2、DOM 操作元素的属性

a.oDiv.style.display='block';    

b. oDiv.style['display']='block';  

c.oDiv.style.setArribute('display','block');  oDiv.style.getArribute('display'); oDiv.style.remveArribute('display');

3、创建DOM元素、插入元素、删除元素

a.创建DOM元素:document.createElement('li');

b.插入元素:父节点.appendChild(子节点名)默认在最后加入;父节点.insertBefore(节点名,新加入的节点名)表示在某一个元素前面加入。appendChild(子节点),这个会先把这个节点从原来的父级删除掉,然后再加入到新的父级。

c.删除元素:父节点.removeChild('节点名');



0 0
原创粉丝点击