JavaScritp

原生JS:

    1,ECMAScript的:规定了JS语言的核心语法的标准

                                                    1.ES3,ES5,ES6(2015),

                                                    2.JavaScript:网景(Mozilla的火狐)参照ES标准实现的JavaScript的语言版本,

                                                    3.JScript微软参照ES标准实现的JavaScript的语言版本。

    2,DOM:专门操作网页内容的API,比如文件撰写(...)向网页内容中输入一行话。

    3,BOM:专门操作浏览器窗口的API,比如警报,提示弹出浏览器的提示框。

变量:

        声明:

                1.字母,数字,下划线和$组成,但不能以下划线开头,

                2.不能使用保留关键字,

                3.见名之意,

                4.驼峰命名法。

                var variable量名1,变量名2,等;

                只声明未赋值的变量都是不确定的。

        赋值:变量名=值;

                特殊:如果强行给未声明的变量赋值

                        普通模式:不会报错,会在全局创建该变量,导致全局污染。

                        严格模式:禁止给未声明的变量赋值,报错,变量未定义,在代码段顶部插入“use strict”;

        简写:var变量名=值;

常量:

    声明:const常量名=值;

    强调:常量名必须全大写,创建常量时必须立刻赋值。

数据类型:

    原始类型:字符串,数字,布尔值,null,未定义。

    引用类型:值无法保存在变量本地的复杂数据类型,变量名仅保存储存空间的地址。

            串:

                        储存的unicode码中,

                        “0〜9” 为 “48〜57”

                        “A〜Z” 为 “65〜90”

                        “A〜Z” 为 “97〜122”

                        汉字为 “\ u4e0” 〜 “\ u9fa5”

 

            数:

                        专门储存数字(包含小数和整数)的类型。

            布尔:

                        专门表示判断结果的,只有两个值:真或假的。

            空值:

                        空,专门给程序员手动清空一个变量用。

            未定义:

                        空,专门由程序自动为一个变量赋初值用。

数据类型转换

    隐式转换:

                无需程序员干涉,程序自动完成的类型转换。

    强制转换:

            转换为数字:

                        parseInt函数();将括号中的数据转换为数字类型的整数。

                        parseFloat();将括号中的数据转换为浮点数(小数)。

            转换为字符串:

                        x.toString();将X转换为串类型。

                        串(X);将X转换为串类型。

            转换为布尔:

                        布尔(X)将X转换为布尔类型。

运算符和表达式

    算数运算符:

            +, - ,*,/,%

                        %:取除不尽的余数部分,取余数或判断能否被整除等,如:判断奇偶数或判断是否是闰年。

    关系运算符:

            >,<,> =,<=,!==,===,isNaN(NUM)判断NUM是不是数字。

    逻辑运算符:

            &&,||,!,短路逻辑

                        在逻辑运算中,如果前一个条件已经可以得出结论,则后续代码不在执行。

                        短路逻辑&&:如果前一个条件为假,则后续条件不再执行,直接返回假的。

                        短路逻辑||:如果前一个条件为真,则后续条件不在执行,直接返回真。

                        短路逻辑&&:条件&&(操作),满足条件执行,不满足不执行。

                        短路逻辑||:值1 ||默认值,如果值1转为布尔后为假,才使用默认值为备用。

    位运算:

            <<按位左移,>>按位右移

                        不声明第三个变量,交换两数字的值一个^ = B,B ^ = A; A ^ = B;

    赋值运算:

            一个+ = B,α-= B,A * = B,A / = B,A%= B

函数

    声明函数:

            函数函数名(参数列表){

                函数体;

                返回返回值;

            }

    调用函数:

            var返回值=函数名(参数值列表);

    作用域:

            全局作用域:窗口

            局部作用域:函数内部

            使用顺序:局部>全局,全局没有报错。

    声明提前:在程序执行之前,将所有VAR声明的变量和函数声明的函数,

                     提到当前作用域的顶部,集中创建,但赋值会留在原地。

            解决:

                        1.尽量将变量或函数的声明集中在当前作用域顶部创建。

                        2.用让代替变种

                        用let函数名=函数(...){...}代替函数(...){...}

    按值传递:

            在两变量赋值时,或将变量作为参数传入函数时,仅将原变量中的值复制一份给对方

            影响:

                        1.如果按值传递是原始类型的值,在函数中修改新变量,不会影响原变量

                        2.如果传递的是引用类型的对象,在函数中用新变量修改对象,等效于直接修改原对象。

全局函数

 

 

 

    ES标准中规定的,不需要任何前缀就能可以直接调用的函数。

            如:

                        1.Number(),字符串(),布尔(),isNaN(),parseInt函数(),parseFloat();

                        2.encodeURI();对统一资源标识符进行编码,并返回编码后的字符串。

                        2.decodeURI();对已经编码的URI进行解码,并返回解码后的字符串。

                        3.encodeURIcomponent();在是encodeURI();的基础上,允许对特殊字符进行编码

                        3.decodeURIcomponent();解码特殊字符

                        4.eval();执行字符串表示的JS代码。

分支结构

循环结构

 

数组

    创建数组:

            var arr = new Array();

            var arr = [];

    访问数组:

            ARR [I];

    。长度属性:

            固定套路:

                        获取倒数第Ñ个元素ARR [arr.length-N];

                        末尾追加一个新元素ARR [arr.length] =值;

                        删除末尾一个元素arr.length--;

                        删除末尾Ñ个元素arr.length-N;

                        清空数组arr.length = 0;

    垃圾回收:

            1.垃圾:不再被任何变量使用的对象,

            2.垃圾回收:程序会自动释放不再被任何变量使用的垃圾对象的内存空间,

            3.为什么:内存空间是有限的,内存占用越多,程序运行越慢,

            4.垃圾回收器:JS引擎中,专门监控,并释放垃圾的小程序,

            5.如何:

                        1.垃圾回收器伴随主程序在后台并行执行,

                        2.垃圾回收器会记录每个对象被几个变量使用着,

                        3.只要发现一个对象,不再被任何变量使用,就释放该对象所占内存。

             6.建议:只要一个变量不再使用,主动赋值为空。

 

 

    索引数组遍历:

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

                    ARR [I];

            }

    关联数组:

            创建:

                        var arr = [];

                        ARR [ “键”] = “值”;

            访问:

                        键;
                        ARR [键]。

            遍历:

                        for(var key in arr){
                                arr [key];
                        }

    数组API:

             转字符串:

                        串();
                        arr.join( “连接符”);判断空数组:arr.join( “”)=== “”;

             拼接和选取:

                        arr1.concat(值1,值2,ARR2);
                        arr.slice(starti,恩迪+ 1);
                        将类数组对象转化为数组对象:Array.prototype.slice.call(参数);相当于arguments.slice();

             修改数组:

                        删除元素:arr.splice(starti,N);
                        插入元素:arr.splice(starti,0,值1,值2,.....);
                        替换:arr.splice(starti,0,值1,值2,....);
                        广告轮播:var imgs = imgs.concat(imgs.splice(0,n));
                                         var imgs = imgs.splice(-n).concat(imgs);
                        翻转:arr.reverse();
                        排序:arr.sort((a,b)=> ab);
                        结尾入栈:arr.push(值) ;

                        结尾出栈:var last = arr.pop();

                        开头入栈:arr.unshift( “值”);

                        开头出栈:var first = arr.shift();

               二维数组:

                          遍历:

                                        for(var r = 0; r <arr.length; r ++){
                                                for(var c = 0; c <arr [r] .length; c ++){
                                                       arr [r] [c];
                                                }
                                        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值