Javascript基础总结(1)

       经过这段时间的学习,我将目前所学的JavaScript的基础部分做一个总结。

一、JavaScript基础知识

1、JavaScript是一个脚本语言,也是前端开发的核心语言,目前所学的是ecmascript5.0的版本,企业里用的是ecmascript6.0/es7,基本上是在5.0的基础上对语句进行了一些优化等等。

2、JavaScript对页面的渲染方式
      分为两种:外部引用和内嵌
      引用的先后顺序取决于浏览器解析的顺序,浏览器的解析顺序是从上到下,所以根据不同的需求来选择不同的引入顺序。有些网页需要加载完成,所以脚本里面就需要加载完成的代码;有些是按需加载,则需要看元素时候初始化完成。

3、变量
      变量其实就是存储的东西,包括值类型和引用类型。在JavaScript中严格遵守大小写的规则,所以在写代码的时候需要严格要求。

(1)、变量的数据类型(7种)
number数字类型     string字符串类型     boolean布尔类型     null空类型 undefined未定义类型     object对象类型    array数组类型
检测变量数据类型的方法:typeOf
例如:var a=10;
           console.log(typeof a);//number

(2)、变量的声明
关键词:var(变量的声明)    new(变量数据类型的声明)
例如:var x= new Number;
           var person= new Object;

(3)、变量的命名(驼峰法)
例如:firstName = “John”;
           lastName = “Doe”;
           注意:变量名应该区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号。

(4)、变量的声明(提前声明)
正确的声明例如:
var n=10;
console.log(n);
错误的声明例如:
console.log(n);
var n=10;
另外,在变量的使用之前需要先初始化,即赋值。
例如:var carname=“bianliang”;

(5)、全局变量和局部变量(作用域)
       作用域是可访问变量的集合。
局部变量:只能在函数内部访问。

全局变量:变量在函数外定义,即为全局变量。全局变量有 全局作用域: 网页中所有脚本和函数均可使用。如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

         全局变量和局部变量最明显的使用例子就是闭包。
例如:
function fun(n,o) {
          console.log(o)
             return {
                        fun:function(m){
                             console.log(m,n);
                             return fun(m,n);
                                                 }
                        };
}
        在这里,n就是一个全局变量,m则是一个局部变量。闭包的变量会存在内存当中,所以尽量避免使用闭包以防内存泄露。

二、函数问题
       在JavaScript中,函数即对象,可以随意地被程序操控,函数可以嵌套在其他函数中定义,这样可以访问它们被定义时所处的作用域中的任何变量。
1、JavaScript中常规函数的定义方法
关键词:function
例如:
function method() {
        console.log(“javascript”);
}
函数执行的方法:函数名();

2、带返回值的函数
function method_3(a,b,c){
         console.log(a,b,c);
         return a+b+c;
}
method_3(1,2,3);

3、带参函数
分为:形参和实参
例如:
console.log(methdo_1());
              function methdo_1() {
                      代码
                      return “你好”;//返回的数据类型不定
}

method_2(1,2,3);
            function method_2(a,b,c){
                    console.log(a,b,c);
}

4、传递参数函数
例如:
method_4(1,2,3);
          function method_4(){
                  //使用传递的参数 arguments 参数列表对象
                  console.log(arguments[0]);
                  console.log(arguments[1]);
                  console.log(arguments[2]);
                  console.log(arguments.length);
}

5、匿名函数
        匿名函数不带名称,不能被提前声明,也分为带参不带参,带返回值不带返回值类型。
例如:
var method_n=function (){
               代码
}
method_n();

6、自执行函数
自执行函数也是匿名函数,它可以自动执行。
例如:
(function (){
        console.log(1);
})();
在函数最后加一个()表示为“我调用我自己”。

三、运算符
JavaScript中运算符有:算术运算符、逻辑运算符、比较运算符

1、算数运算符
“+”:算数加;
“-”:算数减;
“*”:算数乘;
“/”:算数除;
“%”:取余;
“++”:自增;
“- -”:自减;
注意:x++表示先运算后自加,++x表示先自加后运算,- -自减也是如此。
“=”:赋值;
“==”:等于,值相同,类型不定;
三个等号则表示值和类型都相同。

2、逻辑运算符
&&:与;
||:或;
!:非;
&:位运算(二进制);

3、比较运算符
“>”:大于;
“<”:小于;
“>=”:大于等于;
“<=”:小于等于;
“!=”:不等于;

四、常用语句
     语句标识符是保留关键字不能作为变量名使用。

1、if语句
语句结构:
if(){
     代码
}else{
     代码
}
()里放的是条件:ture或者false(0代表false,非0代表ture)

2、switch语句
语句结构:
switch (type) {
       case “”:
                代码;
                break;
       case “”:
                代码;
                break;
       default :
                代码;
                break;
}

3、while和dowhile
当条件语句为 true 时,执行。
语句结构:
while(){
      代码;
}

do{
     代码;
}while();//就算为false,也会执行一次。

4、for语句
语句结构:
for(var i=?;i<?;i++){
        代码;
}//可嵌套
注意:break 跳出当前的for
           continue 执行后续

5、三元逻辑符
语句结构:
条件?true:false

五、DOM获取方案
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

1、DOM元素的获取(8种)
动态获取(4种):
标签名获取:
var dom1=document.getElementsByTagName(“button”);
console.log(dom1[0]);//htmlcollection 集合类型 [index] 获取元素

类名称获取:
var dom2=document.getElementsByClassName(“btn”);
console.log(dom2);//htmlcollection 集合类型 [index] 获取元素

name名称获取:
var dom3=document.getElementsByName(“but”);
console.log(dom3);//NodeList 集合 [index] 获取元素

id名称获取:
var dom4=document.getElementById(“btn_1”);
console.log(dom4);//object 单个对象

固定获取(2种):
初始化页面有几个元素 获取几个 后期动态添加的不能直接获取。

单个获取:
var querybtn=document.querySelector(".btn");
console.log(querybtn);

多个获取:
var queryall=document.querySelectorAll(".btn");
console.log(queryall);//nodelist集合 [index] 获取元素

提供了两个固定元素的获取:
//body
console.log(document.body);
//html
console.log(document.documentElement)

六、DOM元素添加几种方案
DOM元素的事件:
鼠标事件:mousedown mouseup mouseover mousemove mouseleave mouseout mouseenter
键盘事件:keydown keyup keypress
表单事件:blur focus change
浏览器事件:load error resize
触屏事件:touchstart touchmove touchend
注意:js的事件在使用的时候要带on,例如:onmousedown;

绑定事件的方式:
1、dom元素直接绑定事件(在元素内直接添加事件,行内同类型事件只能绑定一次)
function msg() {
       console.log(“按钮”);
}
function down() {
        console.log(“down”);
}

2、直接动态绑定事件 (先获取dom 再绑定事件)
var regest = document.querySelector("#btn");
regest.onclick = reg1;

3、事件的监听(监听事件类型不带on)
regest.addEventListener(“click”, method1);
function method1() {
         console.log(“huitiao”);
}
注意:addEventListener 监听事件中第三个参数不写,默认是事件冒泡,第三个参数默认为false=冒泡,true=捕获。
例如:regest.addEventListener(“click”, method1);//冒泡
regest.addEventListener(“click”, method1,false);//冒泡
regest.addEventListener(“click”, method1,ture);//捕获

冒泡是指先触发内部元素事件,再触发外部元素事件。
捕获是指先触发外部元素事件,再触发内部元素事件。

事件执行参数:event
1.event.stopPropagation();
阻止了事件冒泡,但不会阻击默认行为
2.return false;
阻止了事件冒泡,也阻止了默认行为
3.event.preventDefault();
不阻击事件冒泡,但阻击默认行为

七、总结
       每学习一段时间返回来总结回顾一下,会有很多新的收获,有些之前没有遇见的问题也都渐渐浮出水面。还是那句话,多练习才会更深刻。

发布了29 篇原创文章 · 获赞 1 · 访问量 577

猜你喜欢

转载自blog.csdn.net/Always_Love/article/details/103577809
今日推荐