• javascript 高级程序设计 三


    Sorry,前两张介绍的主题还是JavaScript,而第一章介绍了JavaScript和ECMAScript区别,所以前两章介绍的主题应该改为ECMAScript,但是

    标题就不改了因为现在人们习惯性称之为JavaScript,所以以后的我会在内容中区分清楚。

    好了,那我们这一次的主题就是ECMAScript的高级概念:

    1、严格模式

      严格模式是在ECMAScript 5中引入的概念,目的是为ECMAScript中定义一种不同的解析和执行模型,来解决JS中的一些不严谨的行为如:

    一条语句的后面没有加;等不严谨但是可用的行为。写法:

        在js文件的开头添加上"use strict";

        或者是在函数内部上方包含这条编译指令:

        function func(){

          "use strict";

        }

    2、变量:

      (1)、在函数中使用var定义的变量都是局部变量,不用var定义的都是全局变量如:

      function func(){

        var temp = 0;

      }

      alert(temp);//出现错误

    而:

      function func(){

        temp = 10;

      }

      alert(temp);// 10

    所以我们在以后的项目编写中一定要注意,var这个占位符的使用。

      (2)、ECMAScript中的简单数据类型:Undefined,Null,Boolean,Number和String,还有一个复杂数据类型Object,

    想查看所定义变量的数据类型,可以使用typeOf这个操作符,如 :

      typeOf(true)----boolean;//一下有一个boolean对正表。

      typeOf(10)------number;//

      typeOf(null)-----object;//null只是一个特殊指“null”,表示一个空对象指针,所以我们在声明一个对象的时候建议先给初始化null;var obj = null;

      typeOf(wang)---undefined;//只是一个特殊值"undefined",就是指变量被var声明但是没有初始化

      typeOf('wang')---string;

    数据类型 转换为true的值 转化成false的值
    String 任何非空字符串 ""(空字符串)
    Number 任何非0数字包括无穷大 0或NaN
    Object 任何不是Null的对象 null
         
         

      (3)、number:在所有基于IEEE754的数值的浮点计算,那么就不可以测试了和某个特定的浮点数相等,如:

      var a =0.1,b = 0.2;

      if(a+b == 0.3){//这种测试不要做,因为浮点小数想加在IEEE754中会产生误差。

        alert('a加b等于0.3');

      }

      isNaN()方法:可以检测参数是否可以转化为Number类型,并且NaN和任何数都不相等,所以不要用以下方法来判断放回是否为NaN

        var a = 3/0;

        if(a == NaN){//这种判断方式是不正确的

          alert('不合法');

        }

      Number();数值转化方法,规则太罗索了,给出几个例子把:

        Number(false);//0

        Number(null);//0

        Number(undefiined);//NaN

        Number("999xxx");//NaN

        Number("0xf");//15

        Number("abc");//NaN

      parseInt();处理整数,直接看例子:

        parseInt("1234bbb");//1234

        parseInt("");//NaN

        parseInt("0xA",16);//10,推荐使用parseInt的时候都加上转换使用的基数

        parseInt("AF");//NaN

        parseInt("AF",16)//175

      (4)、Object的属性和方法

        Constructor:保存着用于创建当前对象的函数

        hasOwnProperty(propertyName);用于检查指定的属性是否在当前的对象实例中,propertyName必须是以字符串格式出现

        isPrototypeOf(object);用于检查传入的对象是否是另一个对象的原型

        propertyIsEnumerable(propertyName);用于判断给定的属性是否可以用for-in的语句来便利

  • 相关阅读:
    Linux下通用打印系统CUPS使用教程
    psql 查询表大小
    vim自动保存折叠
    VIM设置代码折叠
    使用 ipdb 调试 Python
    在 Vim 中使用 pydiction 对 Python 进行代码补全
    wget 下载整个网站,或者特定目录
    dpkg: warning: files list file for package `*****' missing, assuming package has no files currently installed解决办法
    Windows安装Redis并添加本地自启动服务并解决客户端dll报错
    windows mysql绿色版配置Mysql5.7.X
  • 原文地址:https://www.cnblogs.com/wang985850293/p/5235348.html
Copyright © 2020-2023  润新知