JavaScript
JavaScript 布兰登 艾奇
JavaScript 是一种运行在客户端的脚本语言(script: 脚本)
脚本语言不需要编译,运行过程中由js解释器(js引擎)逐行进行解释并进行 现在也可以基于Node.js技术进行服务器端的编程
浏览器分为渲染引擎和JS引擎
渲染引擎用来解析HTML和CSS chrome: blink, 老版本的webkit.
Js引擎(Js解释器):用来读取网页中的JavaScript代码,对其进行处理后运行 chrome 中的v8
浏览器本身并不会执行Js代码,而是通过内置JavaScript引擎(解释器)来执行Js代码.
Js引擎执行代码时逐行进行解释每一句源码(转换成机器语言) 然后通过计算机去执行 所以JavaScript 语言归为脚本语言会逐行解释执行
Js的组成:
ECMAScript: JavaScript语法( JavaScript网景公司 Jscript微软)
DOM:页面文档对象模型
BOM:浏览器对象模型
Js书写方式: 行内 内嵌和外部
行内JS:
- 可以将单行或少量JS代码写在HTML标签事件属性中(以on开头的属性)如onclick
- 注意单双引号的使用 在HTML 中我们推荐使用双引号 在JavaScript中我们推荐使用单引号
- 可读性差
- 引号易错
- 特殊情况下使用
内嵌JS:
- 可以将多行JS代码写道<script>标签中
- 内嵌JS是学习时常用的方式
外部JS文件
- 利于HTML页面代码结构
- 引用外部JS文件的<script>标签中不可以写代码
- 适合于JS代码量比较大的情况
JS注释:
- 单行 //
- 多行 /*……*/
JavaScript输入输出语句
函数 | 效果 | 归属 |
alert(msg); | 浏览器弹出警示框 | 浏览器 |
console.log(msg); | 浏览器控制台打印输出消息 | 浏览器 |
prompt(info); | 浏览器弹出输入框,用户可以输入 | 浏览器 |
变量:是程序在内存中申请的一块用来存放数据的空间
变量的使用: 1 声明变量 2 赋值
声明: var age; var是JS的关键字,用来声明变量
变量语法扩展
1.更新变量: 重新赋值后,原有的值被覆盖
2.同时声明多个变量: var age=18, name=’abc’; 用逗号隔开
3.变量的特殊情况
1) 声明未赋值 undefined
2) 不声明不赋值 直接使用 报错
3) 不声明只赋值 输出值 (此时为全局变量)
变量命名规范:
- 字母 数字 下划线 美元符号$
- 严格区分大小写
- 不能以数字开头
- 不能是关键字
- 变量名必须有意义
- 遵守驼峰命名法,首字母小写,后面单词的字母需要打写
JavaScript 是弱类型编程语言或者说是动态语言
js的变量数据类型只有程序在运行过程中,根据等号右边的值来判断, JavaScript数据类型可变化
数据类型分类:简单数据类型
类型 | 默认值 |
Number | 0 |
Boolean | false |
String | ” |
Undefined | Undefined |
Null | null |
Number
数字以0开头为八进制 以0x开头为十六进制
数字可以为整数也可以为小数(浮点型)
Number最大值 Number.MAX_VALVE 最小值: Number.MIN_VALVE
Infinity(无穷大) -Infinity(无穷小)
NaN 非数字 isNaN() 用来判断非数字
字符串行String 引号中的任意文本 js推荐使用单引号
- 字符串中引号的嵌套问题(外双内单,外单内双)
- 字符串转义符
转义符 说明 \n 换行符 \\ 斜杆 \’ ‘单引号 \” 双引号 \t tab缩进 \b 空格 - 字符串长度 length
- 字符串的拼接 “+” 只要有字符串 + 任意类型 = 拼接后的新字符串
- 字符串拼接加强 字符串和变量来拼接,方便修改值
布尔型 Boolean
true参加加法运算当1 false 参加运算当0
Undefined 和 Null
一个变量声明没有被赋值,变量会有一个默认值undefined(如果进行相加或者相连,注意结果)
undefined+1 最后结果未NaN
Null + 1 最后结果为1
获取吧变量类型 typeof typeof num 注: prompt 取出来的值为字符串类型
typeof null -> object
字面量: 在源代码中一个固定值的表示法
数据类型的转换
1. 转换成字符串
- toString() num.toSting();
- String() 强制转换 String(num);
- 加号拼接字符串 ‘字符串’+num;
2.转换成数字型
- parseInt(string) parseInt(’78’);
- parseFloat(string) parseFloat(’78’);
- Number() 强制转换 Number(’78’);
- js隐式转换( – * / ) ’78’ – 0;
3.转换成布尔型
Boolean() Boolean(‘true’);
代表空的会转换成false, 如空,0,NaN,null,undefined 其余值会被转化成true.
解释性语言和编译型语言
编程语言 –> 编译器 –> 机器语言(二进制)
翻译器翻译的方式有两种,一个是编译,另一个是解释,区别:翻译的时间点不同.
- 编译是在代码执行前进行编译,生成中间代码文件
- 解释是在代码运行过程中及时解释,并立即执行
标识符:开发人员为变量 属性 函数 参数 取的名字. 标识符不能是关键字或者保留字
- 关键字: JS中已经使用了的名字,不能再充当变量名,方法名
- 保留字: 预留的”关键字” 未来可能成为关键字