一、语法

  EMCA-262通过叫做ECMAScript的“伪语言”为我们描述了javascript实现的基本概念

  javascript借鉴了C的语法,区分大小写,标示符以字母、下划线、或美元符号($)开头,注释可以用 // 或者/* */

  严格模式:

  ECMAScript 5引入了严格模式,在严格模式下不确定的行为将得到处理,通过在顶部添加 “use strict”来启用严格模式:

  1. function fuc(){
  2. "use strict";
       //函数体
  3. }

  这行代码是一个编译提示,告诉支持javascript的引擎切换到严格模式。

  变量:

  ECMAScript的类型是松散类型的,可以保存任何类型的数据

  通过使用var来声明变量:

  1. var message,
  2. num.
  3. str;

  当省略var关键词时,自动创建全局变量。

  1.   数据类型:
  2.  
  3.   六种数据类型
        1Undefined
        2Null
        3Boolean
        4Number
        5String
        6Object(一组无序的名值对组成)
  4.  
  5.   操作符:typeof 注意不是函数,可用于变量或者数值字面量。
      
      Undefined:
        Undefined类型只有一个值,即特殊的undefined
        当变量定义未初始化时,其值为undefined
  1.     var test;
  2.     typeof test == "undefined" //true
  1.  
  1.    对未声明的变量执行typeof操作时也会返回undefined
      
      Null:
        Null类型的值为null,表示一个空对象指针,
        
        undefined值派生自null值.
  1.     typeof null == 'object';
  1.     如果定义的变量准备在将来用于保存对象,最好将变量初始化为null,而不是其他值,
        这样只要检测是否是null值就可以知道变量是否已经保存一个对象的引用。
  2.  
  3.   Boolean:
        Boolean类型,值为true false 区分大小写。
        将任意数据类型转换为Boolean可以使用Boolean()函数。控制流语句如if语句会发生自动转换
  1. var msg = "hello"
  2. if(msg){
  3. alert("hello, yangxunwu");
  4. }
    //msg自动转换为Boolean类型true
  1.   Number:
        Number类型使用IEEE754格式来表示整数和浮点数。ECMA-262定义了不同的数值字面量。
  1. var intNum = 55 //十进制整数
  2. var octaNum= 70 //八进制整数56
  3. var hexNum = 0xA //十六进制整数
  4.  
  5. var floatNum = 1.10
  6. var floatNum = 2.34e3 //e表示法2340

     

    数值范围:

  1. 最大:Number.MAX_VALUE
  2. 最小:Number.MIN_VALUE
  3. 超过数值范围的值会返回Infinity值,不能参与下次计算

    NaN:

    非数值(not a number)是特殊的数值,表示一个原来要返回数值的操作数未返回数值的情况。例如0/0。其他语言会导致错误,但ECMAScript返回NaN。

  1. isNaN()函数确定参数是否“不是数值”
  2.  
  3. isNaNNaN //true
  4. isNaN("blue") //true
  5. isNaN(“10”) //false
  6.  
  7. NaN不等于任何数值
  8. NaN == NaN //false

     

  1. 数值转换:
  2. Number()函数 parseInt() parseFloat()
  3.  
  4. Number("") //
  5. Number(false) //
  6. Number("hello") //NaN
  7. Number("0010") //
  8. 如果是对象先调研valueOf(),再调用toString()方法。
  9.  
  10. parseInt("123abc") //
  11. 第二个参数指定基数
  12. parstInt("123abc", 16) //
  13.  
  14. parseFloat("12.3ab") //12.3
  15. parseFloat("12.3.4") //12.3
  16. parseFloat()没有第二个参数指定基数

  String:

  String类型由零到多个16位的Unicode字符组成的字符序列,即字符串,用“”或者‘’表示。

  1. 字符串一旦创建不可更改,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另外包含新值的字符串填充该变量。
  2.  
  3. var lang = "java"
  4. lang = lang + "script"
  5. 首先创建一个容纳10个字符的新字符串,然后在这个字符串中填充“java”和"script",最后销毁原来的“java”和“script”字符串。

  Object:

  Object类型是一组数据和功能的集合。对象可以通过执行new操作符后跟的对象类型来创建。而创建Object类型

的实例并为其添加属性和方法,就可以创建自定义对象。

  1. var obj = new Object()
    ECMAScript中,Object类型是所有他的实例的基础,Object存在的任何属性和方法也存在于更具体的对象中。

Javascript高级程序设计——基本概念(一)的更多相关文章

  1. Javascript高级程序设计——基本概念(二)

    相等操作符: 相等==:这个操作符会先转换操作数,强制类型转换,然后再比较他们的相等性. null == undefined //true NaN == NaN //false"5" ...

  2. 《JavaScript高级程序设计》 -- 基本概念(一)

    之前看过好几遍<JavaScript高级程序设计>这一书,但是始终没有完完整整的看过一遍.从现在开始我会把它完整的啃一遍,每章节都记录笔记,自己的心得,加油! 由于前三章的内容比较简单,因 ...

  3. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  4. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  5. 读javascript高级程序设计00-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

  6. 《JavaScript高级程序设计》读书笔记--前言

    起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...

  7. 《JavaScript高级程序设计》学习笔记(5)——面向对象编程

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...

  8. 《JavaScript高级程序设计》学习笔记(4)——引用类型

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...

  9. 1 《JavaScript高级程序设计》学习笔记(1)

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 首先,我将从<JavaScript高级程序设计>这本JavaScript学习者必看的经典教 ...

随机推荐

  1. Linux/UNIX 定时任务 cron 详解

    定时任务( job)被用于安排那些需要被周期性执行的命令.利用它,你可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行.cron 是 Linux 或者类 Unix 系统中最为实用的工具之一 ...

  2. HDU5670Machine(抽象进制)

    有一个机器,它有 m (2\leq m\leq 30)m(2≤m≤30) 个彩灯和一个按钮.每按下按钮时,最右边的彩灯会发生一次变换.变换为: 1. 如果当前状态为红色,它将变成绿色: 2.如果当前状 ...

  3. 深入理解css中position属性及z-index属性

    深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共 ...

  4. css中 Span 元素的 width 属性无效果原因及多种解决方案

    先运行下程序看下: <span style='width:300px;'>123</span> 输出:123 可以看到 span会自动根据包含的内容来变化宽度 这是因为:对于内 ...

  5. 使用js进行string和json之间转换的方法

    在数据传输过种中,json是以文本,即字符串的形式传递,字符串形似Json对象: var str1 = '{ "name": "Amy", "sex& ...

  6. HTML学习笔记——post表单

    1>form1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  7. JSP 入门 HTML嵌套Java脚步 显示时间

    <%@ page import="java.util.Date"%> <%@ page language="java" contentType ...

  8. Clion cmake 一个简单的 C++ 程序

    CMakeLists.txt cmake_minimum_required(VERSION 3.5) project(dll) set(CMAKE_CXX_FLAGS "${CMAKE_CX ...

  9. HTML5基本布局

    HTML4布局 HTML5布局 基本的HTML5文档的模式为: <!DOCTYPE html> <html lang = "en"> <head> ...

  10. Android中怎么用this

    在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚.现在让大家 ...