第一章 JavaSript概论

1.什么是JavaScript.

具有面向对象能力的,解释型的程序设计语言。

2.JavaScript的特点.

  • 松散性
  • 对象属性
  • 继承机制(基于原型)

3.JavaScript核心

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

第二章 使用JavaScript


1.创建一张HTML页面

<!DOCTYPE HTML><html lang="en"><head><meta charset="utf-8"/><title>The first page</title></head><body><h1>Hello World</h1></body></html>

2.<script>标签解析

  • defer    ----规定是否对脚本执行进行延迟,直到页面加载为止。
  • src       ----规定外部脚本文件的 URL。
  • type     ----规定脚本的 MIME 类型。
  • charset ----定义脚本中使用的字符编码。不支持。

3.JS代码嵌入的一些问题

平稳退化,不支持javascript

<noscript>
您没有启用javascript.
</noscript>

第三章 语法,关键字保留字及变量

1.语法构成

  • 区分大小写
  • 标识符:变量,函数,属性的名字,或者函数的参数
  • 注释   //单行                         /*   */多行
  • 直接量(字面量)
  • 数组字面量和对象字面量的表达式也是支持的{x:1,y:2},{1,2,3,4,5}

2.关键字和保留字

  • 2.1 关键字
break else new var
case finally return void
catch for switch while
continue function this with
default if throw delete
in try do instanceof
typeof      
  • 2.2 保留字
abstract enum int short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
double import public

3.变量

  • 定义变量时要使用var操作符,后跟变量名,如下所示:
var message

  • 该变量可以用来保存任何值,像例子所示未经过初始化的变量,会保存一个特殊的值:undefined.
  • 有一点必须注意,即使用var操作符定义的变量将成为该变量的作用域中的局部变量。如果省略了var操作符,而表示创建的是一个全局变量。
  • 可以用一条语句定义多个变量,只要像下面这样把每个变量(初始化或者不初始化)用逗号隔开即可。
    var message="hi",found=false,age=29;

第四章 数据类型

简单数据类型:Undefined,Null,Boolean,Number和String

复杂数据类型:Object     ,Object本质上是由一种无序的名值对组成的。JavaScript不支持任何创建自定义类型的机制,而所有的值最终将是上述6种数据类型之一。

1.typeof操作符

  • 对象或null  ----    object
  • 函数    ------   function(不是数据类型)
  • 未定义 ------   undefined
  • 数值,NaN  -----   number
  • 字符串   -----   string
  • 函数   -----   function

2.Undefined类型

  • 只有一个值,即特殊的undefined
  • 使用var声明变量,但没有对其进行初始化
  • 没有必要给一个变量赋值为undefined
var message;
console.log(message)  //undefinrd

3.Null类型

  • 只有一个值,即特殊的null
  • 它代表一个空的对象引用(指针)
  • 如果定义变量准备在将来用于保存对象,最好初始化
  • undefined是派生自null
var car=null;
console.log(typeof car); //objectconsole.log(null==undefined);  //true

4.Boolean类型

   以下情况的boolean值为false

  • 空字符串
  • 0和NaN
  • null
  • undefined
var found=true;
var lost=false;
console.log(typeof found);  //boolean
console.log(typeof lost);     //booleanvar message="Hello world!";
var messageAsBoolean=Boolean(message);
console.log(messageAsBoolean);   //true

  • 不同数据类型之间可以转换
数据类型           转换为true的值         转换为false的值         
Boolean true false
String 任何非空字符串 ""(空字符串)
Number 任何非零数字值(包含无穷大) 0和NaN
Object 任何对象 null
Undefined 不适用 undefined
  • 这些转换规则对理解流控制语句(如if语句)自动执行相应的Boolean转换非常重要:
var message="Hello world";
if(message){
console.log("value is true");
}

5.Number类型

  • 关于NaN,它即非数值(Not a Number),是一个特殊的数值。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在javascript中,任何数值除以0会返回NaN,因此不会影响其他代码的执行。
  • NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN。其次,NaN与任何值都不相等,包括NaN本身。
Number.MIN_VALUE~~~Number.MAX_VALUE   //浮点数范围

console.log(NaN==NAN);  //false

console.log(isNaN(NaN));   //trueconsole.log(isNaN(10));    //falseconsole.log(isNaN("10"));  //false,可以被转换成10console.log(isNaN(true));  //false,可以转换成1console.log(isNaN("blue")); //true

6.String类型

  • String类型用于表示由0个或多个Unicode字符组成的字符序列,即字符串。字符串可以由双引号或单引号表示;
  • 字符串是不可改变的,一旦创建,它们的值就不能改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值得字符串填充该变量。
  • 将一个值转化成字符串有两种方式。一种是每个值都有的toString()方法,这个方法唯一要做的就是返回相应的字符串表现。
var age=11;
var ageAsString=age.toString();
console.log(ageAsSring);    //字符串 “11”var found=true;
var foundAsString=found.toString();
console.log(foundAsString);   //字符串“true”

7.Object类型

  • javascript中的对象其实就是一组数据和功能的集合,对象可以通过new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象。
var o=new Object();
o.name="jack";
o.age=12;
o.box=function(){
return "hhh"
}console.log(o.name);   //"jack"console.log(o.box());   //"hhh"

  • 同样可以使用new操作符来创建其他类型的值
var box1=new Number(9);
console.log(box1);   //9;var box2=new Boolean(true);
console.log(box2);    //truevar box3=new String("kang");
console.log(box3);

 第五章 运算符

1.什么是表达式

  • 最简单的表达式是字面量或者变量名

2.一元运算符

  • 递增++和递减--
  • 前置和后置的区别
var box=100;
var age=++box;       //age的值为101;
var height=box--;      //height值为100;

  • 其他类型应用一元运算符的规则
var box="89";box++;            //90
var box="ab";box++;            //NaN
var box="false";box++;         //1;var box={toString:function(){return 1;}
};box++;                            // 1     

  • 加和减运算符
var box=100; +box;                             //100
var box="89";  +box;                              //100
var box=false;  +box;                              //0

3.算术运算符

ECMAScript 定义了 5 个算术运算符,加减乘除求模(取余)。如果在算术运算的值不是
数值,那么后台会先使用 Number()转型函数将其转换为数值(隐式转换)。

  • 加法
  • 减法
  • 乘法
  • 除法
  • 取余

4.关系运算符

用于进行比较的运算符称作为关系运算符:小于(<)、大于(>)、小于等于(<=)、大于等
于(>=)、相等(==)、不等(!=)、全等(恒等)(===)、不全等(不恒等)(!==)

  • 和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
  1. 两个操作数都是数值,则数值比较;
  2. 两个操作数都是字符串,则比较两个字符串对应的字符编码值;
  3. 两个操作数有一个是数值,则将另一个转换为数值,再进行数值比较;
  4. 两个操作数有一个是对象,则先调用 valueOf()方法或 toString()方法,再用结果比较;
var box = 3 > 2;              //true
var box = 3 > 22;             //false
var box = '3' > 22;           //false
var box = '3' > '22';         //true
var box = 'a' > 'b';          //false a=97,b=98
var box = 'a' > 'B';          //true B=66
var box = 1 > 对象;            //false,如果有 toString()或 valueOf()则返回 1 > 返回数的值

  • 在相等和不等的比较上,如果操作数是非数值,则遵循一下规则:
  1. 一个操作数是布尔值,则比较之前将其转换为数值,false 转成 0,true 转成 1;

  2. 一个操作数是字符串,则比较之前将其转成为数值再比较;

  3. 一个操作数是对象,则先调用 valueOf()或 toString()方法后再和返回值比较;

  4. 不需要任何转换的情况下,null 和 undefined 是相等的;

  5. 一个操作数是 NaN,则==返回 false,!=返回 true;并且 NaN 和自身不等;

  6. 两个操作数都是对象,则比较他们是否是同一个对象,如果都指向同一个对象,则返
    回 true,否则返回 false。

  7. 在全等和全不等的判断上,比如值和类型都相等,才返回 true,否则返回 false。

    var box = 2 == 2; //true
    var box = '2' == 2; //true,'2'会转成成数值 2
    var box = false == 0; //true,false 转成数值就是 0
    var box = 'a' == 'A'; //false,转换后的编码不一样
    var box = 2 == {}; //false,执行 toString()或 valueOf()会改变
    var box = 2 == NaN; //false,只要有 NaN,都是 false
    var box = {} == {}; //false,比较的是他们的地址,每个新创建对象的引用地址都不同
    var age = {};
    var height = age;
    var box = age == height; //true,引用地址一样,所以相等
    var box = '2' === 2 //false,值和类型都必须相等
    var box = 2 !== 2 //false,值和类型都相等了

5.逻辑运算符

转载于:https://www.cnblogs.com/1713pro/p/6991680.html

JavaScript高级程序设计--01相关推荐

  1. javascript高级程序设计学习之数值转换 |Number(),parseInt(),parseFloat()

    2019独角兽企业重金招聘Python工程师标准>>> 将非数值转换成数值的函数有三个:Number(),parseInt(),parseFloat(); 小记tip:Number( ...

  2. 《JavaScript高级程序设计》五、引用类型(基本包装类型)

    <JavaScript高级程序设计>五.引用类型(基本包装类型) 目录: Boolean类型 Number类型 String类型 字符方法 字符位置方法 字符操作方法 字符大小转换方法 字 ...

  3. 《JavaScript高级程序设计》读书笔记 -12.1 window对象

    <JavaScript高级程序设计>读书笔记 -12.1 window对象 12.1 window对象 12.1.1 Global作用域 12.1.2 窗口关系[不是很懂] 12.1.3 ...

  4. JavaScript高级程序设计第四版学习--第二十四章

    title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...

  5. javascript高级程序设计学习笔记

    javascript高级程序设计,当枕头书已经好久了~zz  现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...

  6. 《JavaScript高级程序设计(第3版)》教程大纲

    词条 <JavaScript高级程序设计>是2006年人民邮电出版社出版的图书,作者是(美)(Nicholas C.Zakas)扎卡斯.本书适合有一定编程经验的开发人员阅读,也可作为高校相 ...

  7. 前端红宝书《JavaScript高级程序设计》核心知识总结

    此文是对<JavaScript 高级程序设计>一书难点的总结,也是笔者在看了 3 遍之后的一些梳理和感想,希望能借此巩固js的基础和对一些核心概念有更深入的了解. 摘要 JS基本的数据类型 ...

  8. 《JavaScript高级程序设计》(第2版)上市

      本书是技术畅销书<JavaScript高级程序设计> 的第2版,几乎全部更新.重写 了上一版的内容,融入了作者近几年来奋战在前端开发一线的宝贵经验 , 是学习和提高JavaScript ...

  9. 攻下《JavaScript高级程序设计》——第二章 在HTML中使用JavaScript

    从上一章我们知道了,JavaScript是一种专门为网页交互而设计的脚本语言,那么,它就免不了和HTML打交道,所以在设计JavaScript的时候,Netscape首要面临的就是,怎么让HTML和J ...

最新文章

  1. python调用什么函数实现对文件内容的读取_如何使用python语言中的方法对文件进行读写操作...
  2. PHP通过header实现文本文件的下载
  3. ADO.net 中数据库连接方式
  4. C# SqlBulkCopy 避免插入重复数据(不重复即插入)
  5. springmvc中@PathVariable和@RequestParam的区别
  6. react hooks使用_如何开始使用React Hooks:受控表格
  7. c车模电磁循迹代码_电磁炉检修快速入门
  8. 如何不出国门走进NLP学术前沿
  9. 恢复出厂设置 卡住10分钟问题
  10. WEB小项目-账务管理系统(2020年03月24日更新,附数据库和源码包)
  11. Windows API一日一练(17)DialogBox和DialogBoxParam函数
  12. ftp断点下载工具,推荐6款好用的ftp断点下载工具,怎么使用
  13. H5点击复制到剪贴板
  14. JPress企业站主题-jpressicu使用教程
  15. 【深度学习】详解 MAE
  16. 网络舆情监测与分析研判工作如何高效做好的解决方案
  17. 备份数据库、恢复数据库
  18. 致远互联巡展走进华东,共享“协同五环”价值盛宴!
  19. linux下Hadoop安装与环境配置
  20. 插件推荐:json解析—Gson以及GsonFormat插件的运用

热门文章

  1. 《scikit-learn》xgboost
  2. Malta中any函数
  3. 模式识别听课笔记【武汉理工大学】
  4. 基于图结构的图合成与差分隐私【LDPGen】
  5. Java多线程网络爬虫(时光网为例)
  6. gensim实现Doc2Vec和Word2Vec
  7. Android Studio 安装 NDK(Mac OX)
  8. Hibernate通用Dao实现
  9. 贪心法——最优装载问题
  10. 八数码——路径寻找问题