相关理论概念:

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

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

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. 《图解TCP/IP》读书笔记

    一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识.掌握TCP/IP的基本技能. 书中讲解了网络基础知识.TCP/IP基础知识.数据链路.IP协议.IP协 ...

  2. python装饰器

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

  3. 最好的5个Android ORM框架

    在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...

  4. jQuery系列:DOM操作

    1. 访问元素 在访问页面时,需要与页面中的元素进行交互式的操作.在操作中,元素的访问主要包括对元素属性.内容.值.CSS的操作. 1.1 元素属性操作 1.1.1 设置或返回被选元素的属性值 语法格 ...

  5. 神秘的 shadow-dom 浅析

    说到 shadow-dom 可能很多人会很陌生.但是其实我们肯定碰到过,本文主要想简单介绍下 shadow-dom.下面直接进入正文. shadow-dom 是什么 顾名思义, shadow-dom, ...

  6. DDD 领域驱动设计-领域模型中的用户设计

    上一篇:<DDD 领域驱动设计-如何控制业务流程?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新,并增加了 ...

  7. ASP.Net中实现上传过程中将文本文件转换成PDF的方法

    iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...

  8. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  9. Discuz X3.2 网站快照被劫持的解决方法

    附上另一个人的解决方法:http://www.discuz.net/thread-3549930-3-1.html 问题如下: 快照被劫持,无论怎么申诉,怎么更新快照,都无法消除此问题,第一次打开网站 ...

  10. Navisworks 提供了.NET, COM和NwCreate 三种API

    Navisworks 提供了.NET, COM和NwCreate 三种API.而通常我们说Navisworks API其实指的只是COM或.NET,因为NwCreate的功能比较特殊.待我一一道来: ...