javascript最新版本介绍,javascript官方文档下载

这篇文章主要介绍了javascript最新版本介绍,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

(一)JS初次使用;

1.搭建JS开发环境;

    (1)在控制后台输出:console.log()。

    (2)在HTML页面输出:

            1).html页面元素事件中输出,如οnclick="";

            2) .通过<>在这里输出JS代码</>,并且可存在html 任意标签位置GPT改写

            3).写到外部js文件,通过< src="url.js"></>引入;

的属性;src,type,defer(设置延迟),async(异步加载页面内容)。< src="url.js" defer></>,defer用户外链标签中,在其他js和dom执行完之后,再执行该外链文件。多个defer时,会依次加载。

2.代码块;指<></>里面包含的js代码为一块代码块,js是按代码块顺序执行。

3.浏览器内核内容排版引擎(html和css)和脚本解释引擎(js)。

4.Error指程序的代码错误,导致程序中断。

   (1)错误处理:指的是程序代码错误,仍然不会导致程序中断的机制。

         如:try{

                        //可能出错的正常代码

               }

               catch(err){

                      //出错后的处理代码包括用户提示,保存进度,日志记录

               }

               finaly{

                      //一段无论如何都会执行的代码

               };

    (2)错误类型:SyntaxError,RangeError,ReferenceError,TypeError,URLError, EvalError。

5. 字符集:js是用unicode字符集编写的,几乎支持地球上所以语言。

6.区分大小写:js严格区分大小写。

7.注释://表示对内容的单行注释,/**/是段注释。

8.转义字符:反斜杠' \ '。\n(换行符),\f(换页符),\\(反斜杠),\'(单引号),\r(回车符),\"(双引号)。

9.with语句:但是现在不推荐使用。

with(document.form[0]){
    name.value="";
    email.value="";
}

//等价于以下语句
var f=document.form[0];
f.name.value="";
f.email.value="";

10.debuggger:开发模式下,打断点调试。

(二)JS基本语法;

1.基本语法;

    (1)字符集:JS是由Unicode字符集编写的,且严格区分大小写,但html不区分大小写。

    (2)注释://和/**/,转义字符 \仅仅对特殊字符有转义功能,对正常字符没有效果 ,如\t(制表符),\",\',\\(一个\)。

2.变量;

    (1)定义:通过var/let关键字声明(如var/let a),或者不需要关键字的全局变量声明(a),变量是由字母,数组,'_'和'$'组成,数字不能作为首位出现,且js关键字不能作为变量名。常用的命名方法有:下划线命名法,驼峰命名法,大驼峰命名法,匈牙利命名法...

    (2)特征:var声明多个变量,号隔开,不用var声明视为全局变量,调用为声明的变量为语 法错误,调用声明未赋值的变量为undefined,var的声明不能使用delete 删除该变量,if(var i)和while(var i)是语法错误的,for(var i(in))是可以的,js会声明提前。

3.数据的基本类型;

    (1)包括:undefined,null,number,string,boolean六种基本类型,typeof只能区分基本数据类型和函数,但是不能准确区分对象和数组。其 中typeof a,如果a未声明,仍然返回undefined,不报语法错误。            

问题:怎么区分对象和数组,或者区分对象和数组的几种方法?

1.构造函数。2.父原型对象。3..class属性。4.Array.isArray(obj)。5.obj.constrctor。注意:.constructor可以检测大部分数据类型,但是对象null和undefined会抛出异常错误,这时可以把值先转为布尔值,true表示存在然后在调用.constructor。typeof的结果为字符串"类型"。.constructor的结果为如String。

(15)可将数值转换为对象。

    (2)Number数值类型:不在区分整数和浮动型,所有数值都是浮动型。整数32位, 浮动64位一般。

            1).toString(2~36进制参数):可以吧数值转换为对应进制的字符串。注意:  a/(25).toString(),25数字必须加括号,否则语法错误。

            2).浮动数溢出:即二进制的浮点数不能正确处理十进制小数,如0.1+0.2不等于0.3,但是可以转换为(1+3)/10;

            3 ) .特殊数值NaN:NaN==="number"且NaN !==NaN,isNaN(num)用于判断数字与NaN;isNaN("A")==true,isNaN("15")==false;即纯数字形式的字符串是数值。

            4).isFinite(num):判断num是否是NaN,无穷大的数值,Infinity(正无穷大),-Infinity(负无穷大)。

    (3)字符串String类型:有.length,有下标,可遍历,应在一行内显示不允许换行,换行用换行符\n,+在字符串中有拼接的作用。

    (4)布尔值boolean类型:在js中undefined,null,"",0,NaN和false这6个 值转换为逻辑值时时false,被称为假值,其他任何类型的数据转换为逻辑值都是 true。如Boolean(NaN)==false; 其中!a 等价于 a==null; b=b?b:"OK",表 示如果b为null,则b="ok",否则b=b;

    (5)Underfined类型:其唯一值underfined,null==undefined,都是假值所有成立。但类型不同所有null===undefined是不成立的。a==undefined,在已声明 a下时判断a是否赋值,未声明a下是语法错误。函数在没返回值下,调用输出 undefined。

注意:显式类型转换(即强制转换):Boolean(),Number(),String(),Object()。

4.严格模式;"use strict";

    (1)在全局下顶端或在函数下顶端(前可有注释)声明,否则无效。

    (2)严格模式的执行:

                         1.不允许全局变量,否则语法错误。

                         2.静默失败升级为错误。

                         3.this不在默认指向全局。如果function f() {return !this;} //返回false,因为在非严格模式下 this指向全局,!this表示不是指向全局,所有是错误的。 但是unction f(){"use strict"; return !this;} // 返回true,因为在严格模式下,this指向undefined,所有!this表示不指向全局指向undefined。

                         4.禁止调用argunments,callee,caller,禁止递归函数,否 则语法错误。

                         5.函数参数重名则报错,对象重名也报错,对对象的四大只读 属性赋值修改也会报错。

                         6.禁止在非函数的代码块内声明函数,如在条件和循环语句中 声明函数是语法错误。

(三)运算符;

    1.算术运算符+,-,*,/,%,-(取反),++,--;

        (1)以上算术运算符的特殊规则:

                   1).任意数(包括0与无穷)与NaN运算结果都是NaN。

                   2).正负无穷之和为NaN,两负无穷之差为NaN。

                   3).正负无穷与任意非0非NaN之乘积为无穷, 否则为NaN。

                   4).正负无穷与无穷相除为NaN,任意数与0, -0相除都正负无穷大。

                   5).无穷模任意数(包括0和无穷)结果都是NaN, 任意非无穷数模无穷数,结果为模前面那个非无穷数,0模任意数结果为0.

                   6 ).++,--只能作用于变量,数组元素,对象属性, 不能作用于具体的数值,如4++为错误。

    2.逻辑运算符&&,||,!。

        (1)六个假值:null,undefined,NaN,"",0,false。其余类型都是true。

        (2)逻辑与(&&):式1 && 式2;其中式1,式2结果为false/ture,但是这个逻辑与&&,结果不一定是false/true。如果式1或式2中包含 null/NaN/undefined,则返回相应的null,NaN,undefined。无穷大Infinity为true。&&优先级高于||。

        (3)逻辑或(||):式1 || 式2;与逻辑与(&&)用法一样。

        (4)逻辑非(!):! 式1;结果一定是false/true。 !a <=> a==null是true。

注意:if(式1 &&(||) 式2){}时;先要判断是否会短路逻辑造成式2不能被执行,然后在判断判断整个式1 && 式2的false/true而确定是否执行if语句。

    3.关系运算符<,>,<=,>=,==,===,!=,!==。

        (1)规则:

                   1.如果运算数都是数字,或一个数字一个纯数字形式的字符串,则转换为数字进行比较运算大小。

                   2.如果都是字符串,或一个布尔一个字符串,则转换为字符串比较 unicode码大小。

                   3.如果一个是数字,另一个是字符串,则用parseInt()转换为数字 比较(开头不是数字的字符串会被转换为NaN)。

                   4.引用对象的值来说,==与===操作的结果都是一样的,即使值一样,但是地址不一样,也都是false。如var a={},b={};c=a;则a与 b值相等地址不相等,结果即不全等又不相等,而c与a地址和值都相等,所有即全等又相等。

注意:(a in obj)中in运算符可检测属性a是否是对象obj或由其继承来的成员。

    4.赋值运算符=,+=,-+,*=,/=,%=,&=,^=,|=。

        (1)连续赋值:var a=b=c=d=f=10;此类1=100赋值为false。

        (2)优先级:(a=6&&(b=function(){return a;})()); 返回undefined,因为=号比&&和()运算低,所有先执行b,结果b中a没有赋值。

    5.对象操作运算符;new,delete,[]和.,(),in。

        (1)new:创建一个新对象。

        (2)delete:删除指定的对象的属性,数组的元素,或变量(var声明的变量不 能删除)。结果返回true/false。如果删除不存在的时返回true,且其只删除值类型的数据。不是清空值(null),而是把其值变为了undefined。

        (3)[]和'.':用于访问对象或数组。[]可以将里面的纯数字字符串转换为数字,且 可以通过变量或者字符串表达式来间接传递特定值。如var b="x",var a={x:1};a[b]返回1,而a.b返回undefined。

        (4)in运算符:判断一个元素是否是一个对象(key名)或一个数组的元素。

    6.其他运算符;三目运算符(?:) ,逗号(,) ,void运算符,eval()运算符,typeof运算符。

        (1)注意:逗号运算符优先级最低,且a=(b=1,c=2);结果a=2。

        (2)void:出现在任意类型运算符之前,总是使得结果返回undefined。如void1或函数void(a,a++),结果都是undefined。

        (3)eval(表达式):计算并返回表达式的结果。

        (4)typeof a:判断a的类型,但是不能区分array和object。注意 typeof undefined返回undefined,typeof null返回object

(四)程序逻辑结构;

    1.空语句没有任何代码只有一个';'号的语句不会执行和报错,如; 或 for();

    2.逻辑结构:

               (1)顺序执行;

               (2)选择执行;

                              1).if(){};

                              2).if(){}else{};

                              3).if()else if(){}...else if()else{};

                              4).switch(){...case 值...(default...};

                              5).选择的嵌套;

 注意:选择逻辑中的条件语句即()里的语句,不能var 声明变量,且特别注意如果是短路逻辑判断表达式2是否已声明,因为短路逻辑可能让表达式2不能执行,且注意运算符的优先顺序

               (3)循环执行;

                               1).while(){}; 循环条件为true不变时为死循环。

                               2).do{}while();

                               3).for(;;){};仅遍历原生属性。

                               4).for(... in ...){};结果是依次获得下标而非值,可以遍历原生(自有)属性和继承属性,以及额外属 性(即添加进去的属性);

                                5).for(... of ...){};

注意:循环结构是最浪费资源的;

    3.结构跳转: 1).break; 中断当前层的循环。

                          2).continue; 跳过当前层的当次循环,进入下一次循环。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值