第二节 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的循环遍历,但是建议数组循环仍用第一种循环,这样不容易弄混

猜你喜欢

转载自www.cnblogs.com/han-bky/p/10068396.html