JS知识点

1、JS与DOM的关系(特效就是JS对DOM对象操作的结果)

浏览器有渲染HTML代码的功能,把html源码在内存中形成一个DOM对象

浏览器内部有一个JS解释器,如chrome用V8引擎

我们在html里写一个JS代码,代码被引擎所执行,而执行的结果就是对DOM的操作

而对DOM操作的结果,就是我们常看到的特效,如轮播、文字变色等

 

2、引入JS代码

a.页内JS代码


<script>
    code......
</script>

 b.引入JS代码

<script src="xx.js"></script>

 

3、变量声明

JS的变量名可以用_,数字,字母,$ ,组成,且数字不能开头

变量名区分大小写

var a=20;
var b=30;
var jquery='juery';
alert(a+b);
alert(jquery);

 

4、变量类型

数值、字符串、数组、对象、布尔、null、undefined

// 数组的写法,"[]"包围,","号隔开每一个值
// JS中,数组是索引类型,key是0,1,2,3,4,5,....
var h = ['张','王','李','赵']; // 对象(和PHP中的关联数组类似) var i = {'name':'poly','age':3}; alert(h[2]); // 李 alert(i.age); // 3
alert(i['age']); // 3

 

5、运算符

% 取模

+ 拼接

// 逻辑运算符与PHP不同
var a = 3;
var b = 2;
var c = a||b; // c在PHP中为true, 在JS中,为a的值,3
console.log(c);
a = 0;
b = 9;
c = a||b; // c在PHP中为true, 在JS中,为b的值 ,9
console.log(c);
// 总结,逻辑运算的值,是能确定运算的结果的单元的值

 

6、控制结构

 var stu=['红','黄','橙','绿'];
    for(var i=1;i<stu.length;i+=1){
        console.log(stu[i]);
    }

 

 

7、window对象

window对象包括地址栏,浏览历史,窗口的宽高等,

例如JS的地址跳转就是改变window.location.href属性,

其中我们运用最多的就是DOM对象,即HTML代码部分

 

8、var

声明变量是var,不加var是直接赋值

函数内部声明变量不加var的话会一直往上找,找到最外层,不加的话容易污染全局变量

 

9、找对象的几种方法

按id查找——getElementsById

按class查找——getElementsByClassName

按标签查找——getElementsByTagName

按层级关系查找——parentNode/childNodes(子元素有多个的话要按数组操作)

按name查找(适用于表单)——getElementsByName

 

10、操作对象的属性

 

如果css属性带有横线,如border-top-style,则把横线去除并横线后的字母大写.

obj.style.borderTopStyle

 

11、测试1——改变div颜色

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<style>
    #test1{
         300px;
        height: 300px;
        background-color: #00b7ee;
    }

    #test2{
         300px;
        height: 300px;
        background-color: #000000;
    }
</style>
<body>
<div id="test1" onclick="bian()"></div>
</body>
<script>
function bian() {
    var div=document.getElementById('test1');
    div.id='test2';
}
</script>
</html>

 

点击div就可以把div颜色改变

 

 

12、测试2——点亮灯泡

<body>
    <img id="dengpao" src="./on.jpg" alt="" onmouseover="bian()">
</body>
<script>
    function bian(){
        var img=document.getElementById('dengpao');
//indexOf方法,检查字符串是否存在
if(img.src.indexOf('on')>=0){ img.src="./off.jpg"; }else{ img.src="./on.jpg"; } } </script>

 鼠标移动到灯泡上状态就会发生改变,

 

 

13、测试3——点击放大div

<body>
<div id='test' style="200px;height:200px;border: 1px solid #5ac2ff;" onclick="bian()">
</div>
</body>
<script>
    function bian(){
        var obj=document.getElementById('test');
        var w=obj.style.width;
        var h=obj.style.height;
        //parseInt方法将字符串转为int
        obj.style.width=parseInt(w)+10+'px';
        obj.style.height=parseInt(h)+10+'px';
    }
</script>

14、删除对象

先找到此对象的父对象parentObj,然后parentObj.removeChild删除

15、创建对象

创建对象,找到此对象的父对象parentObj,然后parentObj.addChild()

16、暴力操作节点

添加节点是一件很麻烦的事情,不过有简单的办法——使用innerHtml方法,各个浏览器都支持得很好

<body>
<div>
    <div id="str"></div>
    <input type="button" value="add" onclick="bian()">
</div>
</body>
<script>
    function bian() {
        var siji=document.getElementById('str');
        console.log('siji');
        dong="<ul><li>春</li><li>夏</li><li>秋</li><li>冬</li></ul>";
        str.innerHTML=dong;
    }
</script>

17、定时器

每隔xx毫秒执行一次方法   setInterval(语句,毫秒数)
xx毫秒后执行一次方法   setTimeout(语句,毫秒数)
清除定时器   clearInterval()
清除定时器 clearTimeout()


18、常用事件

onclick  元素点击时

onfocus 获得焦点时

onblur    失去焦点时

onmouseover  鼠标经过时

onmouseout    鼠标离开时

oninput input    内容变化时触发[HTML5新增的,IE9及以上才能用]

onsubmit   表单提交时(需写在表单里,方法前得加return)

19、第二种绑定事件方法,结构与行为相分离

 document.getElementById('test').click=function(){
            xxxxx
        }

20、事件对象

每次事件执行浏览器都会记下事件执行触发的状态,如鼠标点击了屏幕的哪个位置,键盘是否触发等等

在方法内传一个形参,就可以打印看到这些参数

21、this永远指向当前对象

原文地址:https://www.cnblogs.com/lamp01/p/6736243.html