当前位置: 代码迷 >> 综合 >> 【无标题】ECMAscript
  详细解决方案

【无标题】ECMAscript

热度:59   发布时间:2023-12-06 15:16:30.0

ECMAscript
    javascript是什么
        javascript 即js是一种轻量级的脚本语言,
是一种面向对象的语言,在浏览器进行解释
    js引入方式
        内嵌式
            <script stype="text/javascript">
  js代码
</script>
该script标签可以放在html任何地方
        外链式
            <script src="js文件路径“></script>
        事件引入
            <button οnclick="js代码“>按钮
    js注释方式
        //单行注释
        /*
多行注释
*/
    js输出方式
        在浏览器窗口输出
alert(输出内容);警告框
        在网页内部输出
document.write(输出内容);
把内容写入html文档中(body里)
        在控制台输出
            console.log(输出内容);
以控制台形式输出
    数据类型
        基本类型
            数字  number
            字符串 string
            布尔类型 boolean
                true
                false
            null  空
                空值 。这个值的语义是,希望表示一个对象被人为的重置为空对象,而非一个变量最原始的状态 。
            undefined
                未定义的值 。这个值的语义是,希望表示一个变量最原始的状态,而非人为操作的结果 。
        符合数据类型
            数组
            对象
            函数
    变量
        声明变量
            ver (变量名);
        变量命名规则
            变量名必须以字母、下划线、美元符号开头,后面可以是字母下划线、美元符号或数字
            变量名区分大小写
            变量名不可以用关键字或保留字
            变量名最后有含义,见名知意
    运算符
        赋值运算符   =
            把右侧的值附加给左侧的变量
        算数运算符
+加号  -减号  *乘号  /除号  %取余
            +加号
                加法运算
加号两侧同时为数字时
                字符串拼接
加号一侧为字符串时
            -减
*乘
/除
%取余
                符号两侧同时为数字,进行对应算数运算
                符号两侧任何一侧为非数字,运算时会把该恻转换为数字进行运算,转换成功进行对应的算数运算,转换失败得到NaN(not aNumber)
            num+=1
num-=1
num*=2
num/=2
num%=2

            ++num
num++
num--
--num
        关系运算符
            >大于
            <小于
            >=大于等于
            <=小于等于
            ==等于
            !=不等于
            ===全等
            返回值
布尔类型
        逻辑运算符
            逻辑与  &&
                true && true  true
                true  &&false  false
                false && true false
                false && false false
                概要
                    逻辑与两侧同时为true才为true ,有一个false则为false
                    短路
逻辑与符号左侧为false,结果为false
逻辑与左侧为true ,结果一右侧值为最终值
                    子主题 3
            逻辑或  ||
                true || true  true
                true ||false  true
                false || true true
                false || false false
                概要
                    逻辑或两侧为false则为false ,有一个为true则为true
                    短路
逻辑或符号左侧为true ,结果为true
            逻辑非  !
                !true  false
                !false  true
                概要
                    非假即真 ,非真即假
                    !true   true
                    子主题 3
        类型转换
            转字符型
                1 与空串进行加法运算
                    +”“   或 +’‘
                2  对于Number类型和Boolean类型来说,
通过to String()方式
                    let str = value.toString();
                        注意点: 变量名称.toString是对拷贝的数据进行转换, 所以不会影响到原有的数据;
    不能使用常量直接调用toString方法, 因为常量是不能改变的。
    .toString无法将undefined、null 转换成 字符串类型。
                3. 通过String方法
                    let str = String(value)
            转数字型
                1  字符串的数值或布尔值,与0进行减法运算或
与1进行乘法运算
                    数值 -0或数值*1
                2 通过Number()转换为数字类型
                    Number(   )
                        如果是数字的话,只是进行简单的传入参数和返回
                        如果是null 返回值是 0
                        如果是undefined, 返回NaN(not a number)
                        如果是字符串:
                                1、如果是空字符串------0
    2、如果只包含数字,将其转换为十进制数返回,前面的0被忽略
    3、如果字符串中的有效的十六进制数,转换为十进制
    4、如果字符串中包含其他的字符-----NaN
                通过  parseIent() 转化为整数
    parseFloat()    保留小数位
                    ( 字符串,进制)
            转布尔值类型
                通过 Boolean()方法
   var num = 0;  
    Boolean(num)  //false
                通过逻辑非运算   !!数值
     var num = [];
            !![]        // true
                3、条件语句中自动进行的强制类型转换,如下:
        (1)if (..)语句中的条件判断表达式。
        (2)for ( .. ; .. ; .. )语句中的条件判断表达式(第二个)。
        (3) while (..) 和 do..while(..) 循环中的条件判断表达式。
        (4)? :中的条件判断表达式。
        (5) 逻辑运算符 ||(逻辑或)和 &&(逻辑与)左边的操作数(作为条件判断表达式)。
                概要
                    null和undefined直接转化为false
字符串:空字符串转化为false,其他全为true
数字:0和NaN转化为false,其他全为true
        分支
            单分支
                if(条件){
  语句
}
                    条件成立(true),执行语句
            双分支
                if(条件){
  语句1
}else{
   语句二
}
                    条件成立(true)执行语句1,条件不成立(false)执行语句2
            双分支
                if(条件1){
  语句1
}else if(条件2){
  语句2
else if()可以有多个
}
......
else{
   语句3
}
                    条件1成立(true)执行语句1 否者条件1不成立(false)看条件2是否成立 成立(true)执行条件2 否者(false)看条件3是否成立,...
若上面的都不成立(flase)则执行else后面的语句
            switch分支
                语法:
switch(表达式){
  case 常亮1:
         语句1;
        break;
   case 常亮2:
         语句2;
        break;
   .....

 default:
    语句;
}
                注意事项:
break若不写 ,switch不会停止
        循环
            while 循环
                语法:
while(条件){
    语句;
}
                特点:先判断在执行
条件为(true)执行语句,

            for循环
                语法:
for(初始化变量;条件判断;变量更新){
 循环操作
}
                特点:先判断,在执行
            do while
                语法:
do{
循环操作;
}while(循环条件)
                先执行循环操作,在进行循环条件的判断
                循环操作至少执行1遍
        跳转语句
            break;
通常与条件语句一起使用吗,跳出整个循环,终止循环
            continue
继续,指跳出本轮循环,进入下轮循环,加速循环
        函数
            内置函数
                parseInt(字符串类型数值,进制数)
把字符串转化为整数
                parseFloat(字符串类型)
把字符串转化为数字(小数,整数)
                eval(字符串)
把字符串当做js来执行
                isNaN(参数)
判断参数是否是NaN类型(会进行类型转换,)
若果是NaN类型,则返回true,否则返回false
                    Number.isNaN(参数)
判断参数是否是NaN类型(不会进行类型转换),如果是NaN类型,则返回true,否则返回false
                isFinite(参数)
判断参数是否有限数字(会先进行类型转换),
如果是有限数字,则返回true,否则返回false
                    Number.isFinite(参数)
判断参数是否有限数字(不会进行类型转换),
如果是有限数字,则返回true,否则返回false
            自定义函数
                声明函数
                    function 函数名(形参1,形参2,...){
   函数体;
    return 返回值 ;
}
                调用函数
                    函数名(实参1,实参2,...);
                匿名函数
                    function(){
  函数体;
}
                    var box=function(){}

box();
                    (function(){})()   自我执行函数
                作用域
                    全局作用域
                    函数作用域
            内置对象
                数学对象
                    属性
                        Math.PI圆周率
                    方法
                        取整
                            Math.ceil(参数)向上取整
返回一个大于或等于参数的整数
                            Math.floor(参数)  向下取整
返回一个小与或等于参数的整数
                            Math.round (参数)  四舍五入
                        Math.max(x,y,,z...)
返回一组数里的最大值
                        Math.min(x,y,z...)
返回一组里的最小值
                        Math.abs(参数)
返回参数的绝对值
                        Math.pow(x,y)
返回x的y次方
                        Math.random()
返回0-1之间的一个随机数
                日期对象
var mydate = new Date();
                    获取
                        mydate.getFullYear()
返回当年年份
                        mydate.getMonth()
返回值月份对应数字【0,11】
0-->1月份  1-->2月份
                        mydate.getDate()
返回当前对应日期
                        mydate.getHours()
当前时间的小时
                        mydate.getMinutes()
当前时间的分钟
                        mydate.getSeconds()
返回当前时间的秒数
                        mydate.getMillidecound()
返回当前时间的毫秒数
                        mydate.getDay()
返回日期【0-6】
0-->星期1    1-->星期2
                        mydate.getTime()
返回当前日期距离1970年1月1日的毫秒数
                        madate.toLocaleString()
返回本地时间字符串格式(年月日 时分秒)
                        mydate.toLocaleDateString()
返回本地日期字符串格式(年月日)
                        mydate.toLocaleTimesString()
返回本地时间 字符串格式(上午下午时分秒)
                    设置
                        mydate.seFullYear(年份)
                        把上述get方法修改为set
                        var d= new  
                字符串对象
                    创建
                        var strObj=new String();
                        var strObj=“”;
                    属性
                        strObj.length返回字符互串的长度
                        索引号
[0,strObj.length-1]
                    方法
                        strObj.indexOf(参数1,参数2)
从参数2位置开始查找参数一子串在整个字符串中第一次的位置
                            参数
                                参数1:必须  查找的子串
                                参数2:可选 开始查找的位置若省略,从
零开始查找
                            返回值
                                如果查找的该子串,返回该子串的下标若果查找不到,返回-1
                        strObj.lastindexOf(参数1,参数2)
从参数0位置开始查找,查找参数1子串在整个字符串中最后一次出现的的位置
                        strObj.replace(参数1,参数2)
用参数2替换参数1匹配的子串
                            参数
                                参数1:必须 被替换的子串或正则表达式(进行全局替换/正则/g)
                                参数2:必须 用来替换的字符串
                            返回值
                                替换后的字符串
                        strObj.charAt(参数)
通过索引号查找字符
                            参数
                                字符串的下标
                            返回值
                                下标对应的字符
                        strObj.charCodeAt(参数)
通过索引号查找字符对应的unicode编码
                            a-z  97-122
                            0-9  48-57
                            A-Z  65-90
                        String.formCharCode(number)
通过unicode编码找到对应的字符
                        截取
                            strObj.substr(参数1,参数2)
从参数1开始截取长度为长度二的子串
                                参数
                                    参数1:必须  开始截取的位置 可以为负 -1是
倒数第一个字符,-2是倒数第二个字符
                                    参数2:可选 截取长度  若省略,截取字符串的末尾
                                返回值
                                    截取到的字符串
                            strObj.substring(参数1,参数2)
从参数1位置开始截取到参数2位置的子串
                                参数
                                    参数1:必须  开始截取的位置 非负整数
                                    参数2:可选 结束截取的位置 非负整数
若省略,截取字符串的末尾
                                返回值
                                    截取到的字符串
                                注意
                                    1.  截取时,包含开始位置,不包含结束微视,截取子串长度=结束位置-开始位置
                                    2.开始位置>结束位置, 截取前,交换位置
                                    3.开始位置==结束位置,截取到的是空串
                            strObj.slice(参数1,参数2)
从参数2位置开始截取到参数2位置的子串
                                参数
                                    参数2:  必须 开始截取的位置  可以为负值
                                    参数2:可选结束截取的位置,可以为负若省略,截取字符串末尾
                                返回值
                                    截取到的字符串
                                注意
                                    1.截取时,包含开始位置,不包含结束位置,截取子串长度=结束位置-开始位置
                                    2.开始位置>=结束位置截取到的是空串
                        分割
                            strObj.split(参数1,参数2)
以参数1位分割符,分割参数2个元素(数组)
                                参数
                                    参数1:必须  分隔符
                                    参数2:可选  分割的分数若省略,分割分数不限制
                                返回值
                                    分割的字符组成的数组
                        其他
                            去空格
                                strObj.trimLeft()去除左侧空格
                                strObj.trimRight()去除右侧空格
                                strObj.trim()去除左右空格
                            strObj.search(正则表达式)
查找匹配正则表达式的字符串
                                返回值:若匹配到,返回第一次屁【匹配的字符串的索引号若匹配不到,返回-1
                            strObj.match(参数)
                                参数:字符串或正则表达式
                                返回值:匹配结果组成的数组或null
                            strObj.startWith(参数1,参数2)
从参数2的位置开始检索字符串是否以参数1开头
                                参数1:必须  子串
                                参数2:可选  开始检索的位置
若省略,从零开始检索
                                返回值:布尔值
                            strObj.endwith(参数1,参数2)
从参数2的位置开始检索字符串是否以参数1结尾
                                参数1:必须  子串
                                参数2:可选  开始检索的位置
若省略,从零开始检索
                                返回值:布尔值
                            atrObj.includes(参数1,参数2)
从参数2的位置开始检索字符串是否含有参数1
                                参数1:必须  子串
                                参数2:可选  开始检索的位置
若省略,从零开始检索
                                返回值:布尔值
                数组
                    数组创建
                        构造函数
                            var arr = new Array();
arr[0] = 12;
arr[1]="hello",
                            var arr = new Array (12);
创建了一个长度为12 的数组
                        字面量
                            var arr = []
空数组
                            var arr = [12,"hello"]
                    数组访问
                        数组长度   arrObj.length
                        下标[0,arr,length-1]
arr[0]
arr[1]
                        遍历数组

                            for(var i=0;i<arr.length;i++){
   i索引号(下标)
    arr[i]  数组元素
}
                            for(var item of arr){
  item  遍历的数组元素
}
                            不推荐使用for-in遍历数组
fo(var i in arr){
  i  属性名
   arr[i]  遍历的元素(属性值)
}
                数组方法
                    遍历数组
                        arrObj.Each(function(item,index,self){
   item  遍历出的每一个元素(当前遍历的元素)
index  元素对应的下标
self  数组本身
})
无返回值
                        映射
arrObj.map(funxtion(item,index,self){
  item  遍历出的每一个元素(当前遍历的元素)
  index  元素对应的下标
self 数组本身
return  返回值;
})
有返回值
返回值:与原数组有映射关系
                        过滤
arrObj.filter(funxtion(item,index,self){
return  返回值;
})
返回值:新数组(过滤出满足条件的元素构成的新数组)
有一个为满足条件,返回false,后面不在进行检测,所有元素都满足条件,才返回true
                    高阶函数
迭代(累加器)
                        迭代
arr.reduce(function(total,item,index,self){
   total  必须 代表初始值或者计算结束的返回值
   item  当前元素;
   index  当前元素的索引;
   self  数组;
    return  返回值;
},初始值)

有返回值
返回值:计算后的total值
                    其他
                        arrObj.every(function(item){
   return  返回值;
});
检测数组里的每一个值是否满足条件,
如果有一个不满足,返回false,剩余的值不在进行检测
如果所有的值都满足,返回true
                        arrObj.some(function(item){
   return  返回值;
});
检测数组里的每一个值是否满足指定条件,
如果有一个满足,返回true,剩余的值不在进行检测
如果所有的值都不满足,返回false
                    删除
                        arrObj.pop()
删除数组尾部的最后一个元素

arrObj.shift()
在数组头部删除一个元素
添加
                            返回值:删除的元素
                    添加
                        arrObj.push(元素1,元素2,..)
把元素添加到数组的尾部
arrObj.unshift(元素1,元素2,...)
把元素添加到数组的头部
                            返回值:新数组的长度
                    Array.isArray(参数)
判断参数是否是一个数组
是数组返回true,否则返回false
                    Array.form(参数2,参数2)
返回值:转换成功的新数组
                        参数1:必须  带转换对象
                        参数2;  可选  数组中每个元素要调用的函数
                    排序
                        arrObj.sort(参数)
数组中的元素排序
                            参数:可选  函数,来定义数值的排列顺序,若省略,按照unicode编码排序
                            参数    函数
函数里的形参的相对顺序决定数组的排列顺序
arrObj.sort(function(a,b){
   return  a-b;   按照升序排序
   return   b-a;   按照降序排序
})
                            返回值:排序后的数组
                    arrObj.reverse()
颠倒数组
                        返回值:颠倒后的数组
                    连接
                        arrObj.concat(参数)
数组连接
                            参数:必须  要连接的数组或元素  多个数组或元素之间用逗号隔开
                            返回值:连接后的数组
                    转字符串
                        arrObj.join(参数)
                            参数 可选 ,为分割符号若省略,默认为逗号隔开
                            返回字符串
            内置对象
                创建
                    var obj = new Object();
obj.属性名 = 属性值;
obj["属性名"] = 属性值;
                    var obj= {};空对象

var obj = {
  属性名 : 属性值
   ...
方法名:function(){
     this--->obj
}
};
                访问对象
                    obj.属性名  或
obj["属性名"]
                    for(var key in obj){
   key    属性名
   obj[key]   属性值
   
}
                其他
                    “属性名”  in   obj
                        用来判断在obj里是否含有某个属性
                        返回值 : true/false
如果含有某个属性,返回true,否则返回false
                    delete   obj.属性名
                        删除obj对象里某个属性
                json
                    javaScript Object Notation
js的对象表示法
是一种数据交换格式
                    json解析
                        把字符串转化为json对象
JSON.paese(字符串)反序列化
                        把json对象转化为字符串
JSON.string
        排序
            冒泡排序
                1.比较相邻的元素。如果第一个比第二个大,就
交换他们两个。
2.对每一对相邻的元素做同样的工作,开始第一对到结尾的最后一对。在这一点,最后的元素应该是最大数。
3.针对所有的元素重复以上的步骤,除了最后一个
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。