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

第二节 JavaScript基础的更多相关文章

  1. android内部培训视频_第二节 布局基础

    第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...

  2. (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识

    开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...

  3. 第二节 Python基础之变量,运算符,if语句,while和for循环语句

    我们在上一节中,我们发现当我们用字符串进行一些功能处理的时候,我们都是把整个字符串写下来的,比如"jasonhy".startwith("j"),如果我们在程序 ...

  4. 第二节 pandas 基础知识

    pandas 两种数据结构 Series和DataFrame 一  Series 一种类似与一维数组的对象 values:一组数据(ndarray类型) index:相关的数据索引标签 1.1  se ...

  5. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  6. 第二节:Web前端-ASP.NET之C#基础

    第二节:Web前端-ASP.NET之C#基础 学习ASP.NET,要掌握学习语言,控件等技能, <div style="text-align: center; line-height: ...

  7. javascript 基础3第13节

    <html> <head> <title>javascript基础</title> </head> <body> 1.流程控制 ...

  8. javascript 基础2第12节

    1. <html> <head> <title>javascript基础</title> </head> <body> 1.Nu ...

  9. javascript 基础1第11节

    <html> <head> <title>javascript基础</title> </head> <body> 1.NaN i ...

随机推荐

  1. EOS account 中的 Threshold 和 weight 使用

    https://eoscity.io/f/viewtopic.php?f=7&t=17 这篇文章的原文:   (https://steemit.com/eos/@genereos/eos-mu ...

  2. Spark学习:ShutdownHookManager虚拟机关闭钩子管理器

    Java程序经常也会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码. JAVA中的ShutdownHook提供了比较好的方案. JDK提供了Jav ...

  3. VMware下安装Ubuntu18.04时vmware tools安装问题

    在VMware下安装Ubuntu18.04时vmware tools关键步骤: 1.快捷键Ctrl+Alt+T,启动命令框,然后切换到root用户(切换命令为:sudo su,回车然后会提示你输入当前 ...

  4. 15个Node.js项目列表

    前言: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascri ...

  5. [LeetCode] 859. Buddy Strings_Easy

    Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...

  6. 《Java程序设计》第一周学习记录(1)

    目录 Windows安装JDK.Git Linux下安装JDK.Git.IDEA 参考资料 Windows安装JDK.Git 到官网直接下载JDK,双击安装程序就正常安装就行了. 下载完以后,可以看到 ...

  7. python SMTP

    一.一开始,相信SMTP服务,所以在本机安装了一个 apt-get install sendmail apt-get install sendmail-cf apt-get install squir ...

  8. usermod命令详解

    转载自:http://blog.51cto.com/urchin/987186 usermod - 修改用户帐户信息 modify a user account usermod [options] u ...

  9. 执行perl xttdriver.pl报错Can't locate Getopt/Long.pm in @INC

    环境:AIX 6.1 + Oracle 10.2.0.4 现象:在做xtts测试时,源环境使用Oracle自带的perl执行xttdriver.pl报错如下: $ $ORACLE_HOME/perl/ ...

  10. Hibernate基础增删改查语法

    1.创建好Hibernate项目,创建好实体类和测试类,如果不会创建Hibernate项目的同学,点此处:http://www.cnblogs.com/zhaojinyan/p/9336174.htm ...