zoukankan      html  css  js  c++  java
  • 第二节 JavaScript基础

    JavaScript组成及其兼容性:

      ECMAScript:解释器,翻译,用于实现机器语言和高级语言的翻译器;几乎没有兼容性问题

      DOM(Document Object Model):文档对象模型,文档就是HTML文档,它赋予了操作HTML的能力;有一些操作不兼容

      BOM(Browser Object Model):浏览器对象模型,操作浏览器,起对象就是浏览器窗口。没有兼容性问题(完全不兼容),很少用,而且用户体验不是很好

    变量类型:变量本身并没有类型,它的类型取决于该变量存储的数据的类型  

      查看数据类型:typeof运算符

      常见类型:number、string、boolean、undefined、object、function;可用alert(typeof 变量名) 显示变量类型

      注意:一个变量应该只存放一种类型的数据

    类型转换:

      var a=‘12’;  //字符串类型

      alert(parseInt(a)+5);  //结果返回17,parseInt(a)表示强制转换(又称显式类型转换)

      其实parseInt()是一个函数,如当a=‘12px34’时,强制转换后,a=12(整数类型),因为该函数直接扫描字符串,从第一个数字开始记录,当遇到非数字时,自动跳出循环,并把非数字后面的数字字符自动忽略,而只保留第一次遇到的数字字符串,并将其强制转换为整数型数字;当a=‘abd’,即变量字符串中没有数字,则alert(parseInt(a))会返回NaN(Not a Number),由此我们可用if(isNaN(a))进行判断,如果是“非数字”,则显示提示,否则正确运行;

      同理的还有parseFloat(a);   //把一个字符串转换成浮点型数字

      隐式类型转换:==(先转换类型,然后比较)、===(不转换类型,直接比)、减法(因为“减法”在系统中只有“相减”这一种操作,所以机器会默然转换后,相减;而“加法”,可以用于字符串连接,以及转换成数字后“相加”,而机器会默认选择最简单的一步,就是直接进行字符串连接),例如:

        var a=5;   var b='5';   alert(a==b);  //系统会先将他们都转换成int类型,然后再判断,所以返回True

        var a=5;   var b='5';   alert(a==b);  //系统不会转换类型,而进行直接比较,所以结果返回False

    变量的作用域(作用范围):

      局部变量:定义在函数里面,并且它只能在定义它的函数内部使用;

      全局变量:定义在函数体外部的变量,可以使用在整个程序中;

      什么是闭包:子函数可以使用父函数中的局部变量(就是闭包),所有的程序中基本上都在使用,不需要太在意(有兴趣的可以百度一下)

    命名规范及必要性:

      可读性(能看懂)、规范性(符合规则)

      匈牙利命名法:类型前缀、首字母大写,如表中所示:

    类型 前缀 类型 实例
    数组 a Array aItems
    布尔值 b Boolean bIsComplete
    浮点数 f Float fPrice
    整数 i Integer iItemCount
    函数 fn Function fnHandler
    对象 o Object oDiv1
    正则表达式 re RegExp reEmailCheck
    字符串 s String sUserName
    变体变量 v Variant vAnything

    运算符:

      算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取模/余);实例:隔行变色、秒转时间、小小计算器

      赋值运算符:=、+=、-=、*=、/=、%=

      关系运算符:<、>、<=、>=、==、===、!=、!==、

      逻辑运算符:&&与、||或、!非    实例:全选、反选

      运算符优先级:()优先级最高  

    var aLi=document.getElementsByTagName('li');
      for (var i=0;i<aLi.length;i++){  //各行变色
        if(i%2==0){
          aLi[i].style.background='#ccc';
        }else {
          aLi[i].style.background='';
        }
      }
    
        var s=1235;   
        alert(parseInt(s/6)+'分'+s%60+'秒');  //秒转时间    

    流程控制:

      判断:if、switch、?:(三目运算符)  条件?:语句1:语句2

      循环:while、for

      跳出:break(跳出循环,执行下面语句)、continue(跳出本次循环,继续执行下一次循环)

      真(true):非零数字、非空字符串、非空对象

      假(False):数字零、空字符串、空对象、undefined

    Json:

      什么是Json:(百度百科)JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。(类似于Python中字典(dictionary)类型)

        json={name1:value1, name2:value2, name3:value3,……};  //其中name2不能和name1相同,否则value2会把value1覆盖掉;另外value1、value2...类型可以相同,也可以不同。

        alert(json.name1);或者用alert(json['a']);  //返回的是value1

      JSon和数组:

        json的元素下标是字符(串),如上面取值语句;  数组的下标是数字,从0开始;

        json没有“长度”,即alert(json.length);返回undefined;  而数组有“长度”;

        在循环语句中:

          for (var i=0; i<arr.length; i++){alert(''+i+'个东西'+arr[i]);} //数组有两种循环方法
          for (var i in arr){alert(''+i+'个东西'+arr[i]);}
          for (var i in json){alert(''+i+'个东西'+json[i]);}  //json的循环方法

      JSon和for in

        上述介绍了json的循环遍历,但是建议数组循环仍用第一种循环,这样不容易弄混

  • 相关阅读:
    (八)断路器-Hystrix
    WINDOWS SERVER 2012 虚拟机 忘记密码后
    IIS FTP :在组合的密钥属性“users,roles,permissions”分别设置为“*,Read,Write”时,无法添加类型为“add”的重复集合项
    log4j 日志组件
    IDEA缓存
    com.alibaba.druid.pool.DruidDataSource
    EHCache CacheManager
    webservice调试(XML参数) Wizdler PostMan
    jar类库加载顺序
    JAXB工具
  • 原文地址:https://www.cnblogs.com/han-bky/p/10068396.html
Copyright © 2011-2022 走看看