相关理论概念:

直接量的概念:直接描述某个(些)存储空间的值的量,如变量的值、对象的值、数组的值。

数据类型:在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。

1、变量的声明和使用

  变量:是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。

  语法规则:

    var 变量名;

  然后进行赋值:num=10时直接赋值:

  var num=10;

  良好的变量命名方式:

  1. 变量必须以字母开头;
  2. 变量名称对大小写敏感(y 和 Y 是不同的变量);
  3. 变量名应当总是遵守驼峰大小写命名法,并且命名前缀应当是名词。

  代码示例:

    //好的写法:

    var count = 10;

    var myName = "Nicholas";

    var found = true;

    //不好的写法:

    var getCount = 10;

    var isFound = true;

2、数据类型

数据类型 含义
undefined 未定义
null
string 字符串类型
boolean 布尔类型
number 数值类型

注意:

  1. 居然undefined和null的含义不同,但undefined实际上是由null派生来的,ECMAScript把它们定义为相等的。
  2. number类型既可以表示32位整数,还可以表示64位浮点数。
  3.  is not defined与undefined的区别:is not defined是未声明定义,找不到。undefined是已定义在目录文件中未找到。

一、基础数据类型:

  1、undefined:

    undefined是一个特殊值,那些没被变量初始化的变量都有一个初始值,即undefined,表示这个变量等待被赋值。

    代码示例:

    //不好的写法

    var person;

    console.log(person===undefined); //true

    //foo未被声明

    var person;

    console.log(typeof person); //"undefined"

    console.log(typeof foo);//"undefined"

    //好的写法,建议使用null

    var person =null;

    console.log(person=== null);

  2、null

  null是一个特殊值,但我们常常误解它,将它和undefined搞混。在以下场景中应当使用null.

  • 用来初始化一个变量,这个变量可能赋值为一个对象。
  • 用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
  • 当函数的参数期望是对象时,用作参数传入。
  • 当函数的返回值期望是对象时,用作返回值传出

  还有以下两个场景不应当使用null.

  • 不要使用null来检测是否传入了某个参数。
  • 不要使用null来检测一个未初始化的变量

  代码示例:

  //好的用法

  var person = null;

  //好的用法

  function  getperson () {

    if (condition){

      return new person ("Nicholas");

    } else {

      return null;

    }

  }

  //好的用法

  var person = getPerson ();

  if(person != null ){

    dosomething();

  }

  //不好的写法:用来和未初始化的变量比较

  var person;

  if (person !=null){

    dosomething();

  }

  //不好的写法:检测是否传入了参数

  function dosomething (arg1,arg2,arg3,arg4) {

    if ( arg4 != null){

      dosomethingElse();

    }

  }

 注意:最好把null理解为占位符(placeholder)。

  检测属性避免非空比较:

  另外一种用到null(以及undefined)的场景是当检测一个属性是否在对象中存在时,比如:

  //不好的写法:检测假值

  if ( object[propertyName]) {

    //一些代码

  }

  //不好的写法:和null相比较

  if( object[propertyName] != null){

    //一些代码

  }  

  //不好的写法:和undefined比较

  if (object[propertyName]){

    //一些代码

  }

  注意:建议使用in运算符进行判断属性。

  如果实例对象的属性存在、或者继承自对象的原型,in运算符都会返回true.比如:

  var object = {

    count:0;

    related: null;

  };

  //好的写法

  if( "count" in object){

    //这里的代码会执行

  }

  //不好的写法:检测假值

  if ( object["count"]){

    //这里的代码不会执行

  }

  //好的写法

  if ( "related" in object) {

    //这里的代码会执行

  }

  //不好的写法:检测是否为 null

  if ( object["related"] !=null ){

    //这里的代码不会执行

  }

  //对于所有非dom对象来说,这是好写法

  if (object.hasOwnProperty("related")){

    //执行这里的代码

  }

  //如果你不确定是否为dom对象,则这样写

  if ("hasOwnProperty" in object &&  object.hasOwnProperty("related")){

    //执行这里的代码

  }

  hasOwnProperty方法的使用:

  • 如果你检查实例对象的某个属性是否存在, 可以使用它。因为所有继承obj的javaScript对象都有这个方法。
  • 如果实例中存在这个属性的返回true。注意:如果这个属性存在于原型里,则返回false。

  注意:

  • 在IE8以及更早版本的IE中,DOM对象并非继承自object,因此也不包含hasOwnProperty方法,也就是说,你在调用dom对象的hasOwnProperty方法之前应当先检测其是否存在(假如你已经知道对象不是dom,则可以省略这一步)。 
  • 不管你什么时候需要检测属性的存在性,请使用in运算符或者hasOwnProperty方法这样可以避免很多bug。 

  3、string  字符串类型

  在javaScript中所有字符是16位的,使用的是Unicode字符编码集。可以使用单引号或双引号来表示,它可能包含0个或多个字符。

  在javaScript中没有字符类型的概念,若需要转义字符则使用/(斜杠)+符号或相关的字母来表示。

  javaScript中字符串的编码风格:

    • 建议使用双引号来表示一个字符串。Crockford的编程规范和jquery的核心风格指南都是使用双引号来表示。利于开发效率,上下文编码规范统一,因为如java等语言的字符串是使用双引号来表示的。
    • 谷歌则是使用单引号来表示。

  相关示例:

  //不好写法

  var longString ="Here's the story , of a man \ named Brady.";

  //好的写法

  var  longString ="Here's the story , of a man " + " named Brady.";

  4、boolean 布尔类型

  布尔(逻辑)只能有两个值:true 或 false。

  相关示例:

  var x=true;

  var y=false;

  5、number类型

  javaScript只有一个数字类型,它在内部被表示为64位的浮点数,类似于java的double浮点类型。

  在javaScript中1和1.0的值相同,在java等语言中是不等价的,是两种数字类型。

  相关示例:

  //整数

  var count =10;

  //小数

  var price = 10.0;

  var price =10.00;

  //不推荐的小数写法:没有小数部分

  var price = 10.;

  //不推荐的小数写法:没有整数部分

  var price = .1;

  //不推荐的写法:八进制写法已被弃用了

  var num = 010;

  //十六进制写法

  var num = 0xA2;

  //科学计数法

  var num = 1e23;

二、引用类型

 1、数组

  数组:在数据结构中编号的值是有序集合。

  下面的代码创建名为 cars 的数组:

  var cars=new Array();
  cars[0]="Saab";
  cars[1]="Volvo";
  cars[2]="BMW";

  或者 (condensed array):

  var cars=new Array("Saab","Volvo","BMW");

  或者 (literal array):

  var cars=["Saab","Volvo","BMW"];
  数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
  相关示例:
  //不好的写法:不赞成使用array构造函数显式地创建数组.
  var colors = new Array("red","green","blue");
  var number = new Array (1,2,3,4);
  //好的写法:使用数组初始元素来代替array构造函数来创建数组。
  var colors = ["red","green","blue"];
  var numbers = [1,2,3,4];

 2、对象

  对象:将一组数据与这组数据有关操作组装在一起,形成一个实体,在数据结构中编号的值是无序集合,这个实体就是对象。包含行为和相关属性。

  对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:

  var person={firstname:"John", lastname:"Doe", id:5566};

  上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。

  空格和折行无关紧要。声明可横跨多行:

  var person={
    firstname : "John",
    lastname  : "Doe",
    id        :  5566
  };

  对象属性有两种寻址方式:

  name=person.lastname;
  name=person["lastname"];
  相关示例:
  //不好的写法
  var book = new Object();
  book.title = "Maintainable JavaScript";
  book.author = "Nicholas C. Zakas";
  //好的写法
  var book = {
    title: "Maintainable JavaScript";
    author: "Nicholas C. Zakas";
  }

 3、函数

  函数的作用是封装相关数据或组件用的。

  函数就是包裹在花括号中的代码块,前面使用了关键词 function:

  function functionname()
  {
    //执行代码
  }

  当调用该函数时,会执行函数内的代码。

  可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

3、运算符

  运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。

  

javaScript基础语法(上)的更多相关文章

  1. javascript基础语法——词法结构

    × 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...

  2. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  3. javascript基础语法——表达式

    × 目录 [1]原始表达式 [2]复杂表达式 前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascr ...

  4. Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

    Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...

  5. JavaScript基础语法资料

    JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...

  6. Nice!JavaScript基础语法知识都在这儿了

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 转载请注明出处! 链接:https://blog.csdn ...

  7. 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

  8. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

  9. 12天搞定Python,基础语法(上)

    不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看.看过之后,你就会明白.建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深. 学编程也一样,要想得心应手的应用,得先打好地 ...

  10. JavaScript 基础语法

    1 谈谈 JavaScript JavaScript,通常会简称为'JS', 是一种浏览器脚本语言 1.1 JavaScript 编程语言特点 JavaScript是一种脚本编程语言 JavaScri ...

随机推荐

  1. Lesson 18 He often does this!

    Text After I had had lunch at a village pub, I looked for my bag. I had left it on a chair beside th ...

  2. Mac-OSX的Python3.5虚拟环境下安装Opencv

    Mac-OSX的Python3.5虚拟环境下安装Opencv 1   关键词 关键词:Mac,OSX,Python3.5,Virtualenv,Opencv 2   概述 本文是一篇 环境搭建 的基础 ...

  3. 浅谈C#网络编程(二)

    阅读目录: 异步IO 非阻塞式同步IO 基于回调的异步IO并发 异步IO 上篇提到用多线程处理多个阻塞同步IO而实现并发服务端,这种模式在连接数量比较小的时候非常适合,一旦连接过多,性能会急速下降. ...

  4. python装饰器

    今天看了装饰器的一些内容,感觉@修饰符还是挺抽象的. 装饰器就是在不用改变函数实现的情况下,附加的实现一些功能,比如打印日志信息等.需要主意的是装饰器本质是一个高阶函数,她可以返回一个函数. 装饰器需 ...

  5. 环境搭建系列-系统安装之centos 6.5安装与配置

    按照国际惯例,系列目录先奉上: 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭 ...

  6. My97DatePicker时间控件在项目中的应用

    一.下载My97DatePicker的压缩包My97DatePicker.rar,解压. 注:My97DatePicker最新版本有开发包,项目中使用时删掉,以便节省空间,提高程序的运行效率. 二.在 ...

  7. 解析大型.NET ERP系统 自动更新

    C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新.工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现. ...

  8. Xshell生成密钥key(用于Linux 免密码登录)

  9. MongoDB高级查询详细

    前言 前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客  MongoDB下载安装与简单增删改查 前 ...

  10. call,apply,bind的用法

    关于call,apply,bind这三个函数的用法,是学习javascript这门语言无法越过的知识点.下边我就来好好总结一下它们三者各自的用法,及常见的应用场景. 首先看call这个函数,可以理解成 ...