JavaScript高级程序设计--01
第一章 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.关系运算符
用于进行比较的运算符称作为关系运算符:小于(<)、大于(>)、小于等于(<=)、大于等
于(>=)、相等(==)、不等(!=)、全等(恒等)(===)、不全等(不恒等)(!==)
- 和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
- 两个操作数都是数值,则数值比较;
- 两个操作数都是字符串,则比较两个字符串对应的字符编码值;
- 两个操作数有一个是数值,则将另一个转换为数值,再进行数值比较;
- 两个操作数有一个是对象,则先调用 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 > 返回数的值
- 在相等和不等的比较上,如果操作数是非数值,则遵循一下规则:
一个操作数是布尔值,则比较之前将其转换为数值,false 转成 0,true 转成 1;
一个操作数是字符串,则比较之前将其转成为数值再比较;
一个操作数是对象,则先调用 valueOf()或 toString()方法后再和返回值比较;
不需要任何转换的情况下,null 和 undefined 是相等的;
一个操作数是 NaN,则==返回 false,!=返回 true;并且 NaN 和自身不等;
两个操作数都是对象,则比较他们是否是同一个对象,如果都指向同一个对象,则返
回 true,否则返回 false。在全等和全不等的判断上,比如值和类型都相等,才返回 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相关推荐
- javascript高级程序设计学习之数值转换 |Number(),parseInt(),parseFloat()
2019独角兽企业重金招聘Python工程师标准>>> 将非数值转换成数值的函数有三个:Number(),parseInt(),parseFloat(); 小记tip:Number( ...
- 《JavaScript高级程序设计》五、引用类型(基本包装类型)
<JavaScript高级程序设计>五.引用类型(基本包装类型) 目录: Boolean类型 Number类型 String类型 字符方法 字符位置方法 字符操作方法 字符大小转换方法 字 ...
- 《JavaScript高级程序设计》读书笔记 -12.1 window对象
<JavaScript高级程序设计>读书笔记 -12.1 window对象 12.1 window对象 12.1.1 Global作用域 12.1.2 窗口关系[不是很懂] 12.1.3 ...
- JavaScript高级程序设计第四版学习--第二十四章
title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...
- javascript高级程序设计学习笔记
javascript高级程序设计,当枕头书已经好久了~zz 现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...
- 《JavaScript高级程序设计(第3版)》教程大纲
词条 <JavaScript高级程序设计>是2006年人民邮电出版社出版的图书,作者是(美)(Nicholas C.Zakas)扎卡斯.本书适合有一定编程经验的开发人员阅读,也可作为高校相 ...
- 前端红宝书《JavaScript高级程序设计》核心知识总结
此文是对<JavaScript 高级程序设计>一书难点的总结,也是笔者在看了 3 遍之后的一些梳理和感想,希望能借此巩固js的基础和对一些核心概念有更深入的了解. 摘要 JS基本的数据类型 ...
- 《JavaScript高级程序设计》(第2版)上市
本书是技术畅销书<JavaScript高级程序设计> 的第2版,几乎全部更新.重写 了上一版的内容,融入了作者近几年来奋战在前端开发一线的宝贵经验 , 是学习和提高JavaScript ...
- 攻下《JavaScript高级程序设计》——第二章 在HTML中使用JavaScript
从上一章我们知道了,JavaScript是一种专门为网页交互而设计的脚本语言,那么,它就免不了和HTML打交道,所以在设计JavaScript的时候,Netscape首要面临的就是,怎么让HTML和J ...
最新文章
- python调用什么函数实现对文件内容的读取_如何使用python语言中的方法对文件进行读写操作...
- PHP通过header实现文本文件的下载
- ADO.net 中数据库连接方式
- C# SqlBulkCopy 避免插入重复数据(不重复即插入)
- springmvc中@PathVariable和@RequestParam的区别
- react hooks使用_如何开始使用React Hooks:受控表格
- c车模电磁循迹代码_电磁炉检修快速入门
- 如何不出国门走进NLP学术前沿
- 恢复出厂设置 卡住10分钟问题
- WEB小项目-账务管理系统(2020年03月24日更新,附数据库和源码包)
- Windows API一日一练(17)DialogBox和DialogBoxParam函数
- ftp断点下载工具,推荐6款好用的ftp断点下载工具,怎么使用
- H5点击复制到剪贴板
- JPress企业站主题-jpressicu使用教程
- 【深度学习】详解 MAE
- 网络舆情监测与分析研判工作如何高效做好的解决方案
- 备份数据库、恢复数据库
- 致远互联巡展走进华东,共享“协同五环”价值盛宴!
- linux下Hadoop安装与环境配置
- 插件推荐:json解析—Gson以及GsonFormat插件的运用