目录
一.JavaScript的介绍
JavaScript通常我们将其简称为JS,是一种运行于JS解释器/引擎中的解释型脚本语言。
解释型脚本语言:运行前不会进行编译,检查错误,直至碰到错误。
相对的就是编译型脚本语言:对源码进行编译且能检查语法错误。语言代表:c,c++。
1.JS运行环境
- 独立安装的JS解释器(NodeJS)
- 嵌入在浏览器内核中的JS解释器
2.JS组成
核心(ECMAScript);
文档对象模型(DOM,Document Object Model),让JS有能力与网页进行对话;
浏览器对象模型(BOM,Browser Object Model),让JS有能力与浏览器进行对话。
3.JS特点
- 开发工具简单,记事本也可
- 弱类型语言,由数据决定数据类型
- 无需编译,直接由JS引擎负责执行
- 面向对象
- 单线程
- 异步
- 解释性语言
4. JS基本语法
铺垫一下浏览器内核作用:内容排版引擎解析HTML,CSS;脚本解释引擎解析JS(不同浏览器内核不同)
- 行内引入,即嵌入在元素“事件”中 : onclick:当单击元素时所做的操作
<html> <body> <button onlick="console.log('Hello World');">打印消息</button> <开始标签 on+事件类型=“js代码”> </结束标签> 行内必须结合事件使用 </body> </html>
- 内部引入,即嵌入在<script> </script>标签中------该标签可以出现在任何位置.
- 外部引入,即写在外部脚本文件中(**.js)------ 创建js文件,并编写代码;在页面中引入js文件,下面标签中不能出现任何代码
<head> <script type="text/javascript" src="myscript.js"></script> </head>
- 语句------由表达式,关键字,运算符组成;分号结束;大小写敏感;
- 注释 ------ //单行注释 /*多行注释*/ sublime text中ctrl+/
二.变量
内存中的一段存储空间,内存空间的别名;可以自定义值:内存空间中的数据
- 声明 var 变量名=值;如果省略了var,则为全局变量;多个变量声明,形式与c相同
除了最常用的var,还有let,const let 无变量提升,不可多次声明,可多次赋值,有自身作用域 一般用于循环遍历计数 const 无变量提升,不可多次声明,不可多次赋值且定义一定要有赋值,有自身作用域 一般用于写在全局作用域作常量
- 变量名命名规范 关键字不能使用;由字母,数字,下划线,$组成;不能以数字开头;可用驼峰命名;尽量见名知意
- 变量使用 使用未被赋值的变量和未声明的变量都会产生错误。
三.数据类型
- 数据类型 原始类型:数字number; 字符串string \u4e00汉字的起始字符 \u9fa5汉字结束字符;布尔类型boolean;空(声明对象未赋值;未定义(声明变量未赋值,访问对象不存在的属性
- 数据类型转换 隐式转换: 函数typeof()或typeofspace 获取数据类型;NaN isNaN判断数据是否是数字;所有数据类型与string相加,最后结果都为string型 强制转换: toString()强制转换为string型;parseInt()获取数据整数部分,从左向右依次转换; parseFloat() 将指定数据转换成小数;Number()将字符串解析为数字(如包含非法字符,则返回NaN;
//string转换 var a=456; a=a.string(); //整数部分 a=parseInt("564.15");//564 a=parseInt("56ing4.15");//56 a=parseInt("ing564.15");//NaN //小数 a=parseFloat("35.25");//35.25 a=parseFloat("inug35.25");//NaN
四.运算符和表达式
+除了加运算,还有连接作用,运算符和逻辑运算符用法与c语言相同;
但需要注意 === 表示全等 !== 不全等,除了数值还比较类型。
isNaN(变量名) //数据是数字类型,返回false;否则相反
三目运算
语句1?语句2:语句三: //1真执行2;1假执行3
该运算可嵌套
三目运算可嵌套
五.函数
函数声明:
function 函数名{
可执行语句;
}
函数调用:函数名(); 带参数和返回值的函数,函数名前面无需改变,其余与c相同;
六.分支结构
if-else结构:if中的语句,JS会自动转换语句类型为布尔类型,除0/0.0/"“/null/undefine/NaN以上语句,一律为真。 switch-case语句
七.循环结构
while循环;do-while循环;for循环;循环嵌套;同c
八.数组
- 数组的创建
var a=[]; var a=new Array();
-
通过下标访问
-
数组长度 数组名.length
-
不限制数组元素的个数;不限制下标越界;不限制元素的数据类型
-
索引数组,下标是数字;关联数组,下标自定义,遍历使用for-in;
var book=[]; book['bookName']='西游记'; for(var key in hash){ key//元素下标名 hash[key]//当前元素值
九.数组API函数
- String(数组名)将数组中元素转为字符串,用逗号分隔
- 数组名.join("连接符")将数组中元素转为字符串,用自定义的连接符分隔
- concat()数组元素拼接
- slice()数组元素选取
- reverse()颠倒元素顺序
- 数组名.sort()排列字符串元素