1 JS 概述
一个完整的javascript实现是由以下3个不同部分组成的:
(1) 核心(ECMAscript)
(2) 文档对象模型(DOM) Document object model (整合js,css,html)
(3) 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
(4) Javascript在开发中绝大多数情况是基于对象的,也是面向对象的
ECMAscript描述了以下内容:
语法
类型
语句
关键字
保留字
运算符
对象(封装 继承 多态)基于对象的语言 使用对象
Javascript的引入方式
(1) 直接编写
(2) 导入文件
小结:JS是一门弱类型语言,相当随便的语言;
Python是一门强类型语言,动态语言
2 JS基础
变量
Javascript中的变量是用来保存值
(1) 变量是弱类型的
(2) 声明变量时不用声明变量类型,全部用关键字var
(3) 一行可以声明多个变量,并且可以是不用类型
(4) 变量名首字符只能是字母,下划线,$美元符 三选一,且区分大小写,x与X是两个变量
(5) 变量还应遵守以下某条著名的命名规则:
1> Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头。
2> Pascal 标记法 首字母是大写的,接下来的字母都以大写字符开头。
3> 匈牙利类型标记法在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。
基础规范
(1) 每行结束最好加分号,没有分号会以换行符作为每行的结束
(2) 注释 多行注释 /* */
单行注释 //
(3) 使用{}来封装代码块
常量和标识符
常量:直接在程序中出现的数据值
标识符:
(1) 由不以数字开头的字母,数字,下划线,美元符号组成;
(2) 常用于表示函数、变量等的名称;
(3) JavaScript语言中代表特定含义的词称为保留字,不允许程序再定义为标识符
数据类型
(1) 数字类型 最基本的数据类型
不区分整型数值和浮点型数值
整数:
在javascript中10进制的整数由数字的序列组成
精确表达的范围是 -9007199254740992 (-253) 到 9007199254740992 (253)
超出范围的整数,精确度将受影响
浮点数:
使用小数点记录数据
使用指数记录数据
16进制和8进制数的表达
16进制数据前面加上0x,八进制前面加0
16进制数是由0-9,A-F等16个字符组成
8进制数由0-7等8个数字组成
16进制和8进制与2进制的换算
(2) 字符串
是由unicode字符,数字,标点符号组成的序列
字符串常量首尾由单引号或双引号括起
JavaScript中没有字符类型
常用特殊字符在字符串的表达
字符串部分特殊字符必须加上右划线\
常用的转义字符 \n:换行 \':单引号 \":双引号 \\:右划线
String数据类型的使用
特殊字符的使用方法和效果
Unicode的插入方法
(3) 布尔型
Boolean类型仅有两个值:ture和false,也代表1和0,实际运算中true=1,false=0
布尔值也可以看作on/off、yes/no、1/0对应ture/false
Boolean值主要用于JavaScript的控制语句
Null &Undefined
Undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined。当函数无明确返回值时,返回的也是值 "undefined"。
Null类型
Null只有一个专用值null。undefined 实际上是从值 null 派生来的
尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null
(4) 数据类型转换
JavaScript属于松散类型的程序语言
变量在声明的时候并不需要指定数据类型
变量只有在赋值的时候才会确定数据类型
表达式中包含不同类型数据则在计算过程中会强制进行类别转换
数字+字符串:数字转换为字符串
var s=12+"hello";
console.log(s);
console.log(typeof s)
>>
数字+布尔值:true转换为1,false转换为0
字符串+布尔值:布尔值转换为字符串true或false
var s1=true+"hello";
console.log(s1);
console.log(typeof s1);
>>
(5) 强制类型转换函数
函数parseInt: 强制转换成整数 例如parseInt("6.12")=6 ; parseInt(“12a")=12 ; parseInt(“a12")=NaN ;parseInt(“1a2")=1
函数parseFloat: 强制转换成浮点数 parseFloat("6.12")=6.12
console.log(parseInt(3.54))
>>
函数eval:将字符串强制转换为表达式并返回结果 eval("1+1")=2 ; eval("1<2")=true
(6) 类型查询函数
ECMAScript 提供了 typeof 运算符来判断一个值是否在某种类型的范围内。可以用这种运算符判断一个值是否表示一种原始类型:如果它是原始类型,还可以判断它表示哪种原始类型。
函数typeof :查询数值当前类型 (string / number / boolean / object )
var n=5;
var s="5";
var b=true; console.log(typeof n);
console.log(typeof s);
console.log(typeof b);
>>