什么是java script
如何编写,调试js
***变量
***数据类型
一.什么是java script
HTML:专门编写网页内容的语言,构建整体框架。
CSS:专门美化网页样式的语言,具有“装修功能”。
JS:专门编写交互的程序语言
交互:用户操作,程序处理用户的操作,返回处理结果
如何运行:
浏览器:内容排版引擎 js解释引擎
内容排版引擎:专门解析HTML和渲染CSS的软件
JS解析引擎:专门解释,并执行js程序的软件
什么是解释和脚本?
解释:默认从上向下,读一行,运行一行;后读到相同内容,会覆盖先读到的。
脚本:不需要预编译,边解释边执行的程序
2.JS发展史:
1955年:Netscape 公司和Sun 公司联合开发出JavaScript 脚本语言,并在其Netscape Navigator 2 中实现了JavaScript 脚本规范的第一个版本即JavaScript 1.0 版
1957年:推出了ECMA-262 规范版本,其定义了以JavaScript 为蓝本、全新的ECMAScript 脚 本语言。
其中的区别:
ECMAScript:标准,规定
JavaScript:Netscape:遵循ECMAScript标准实现的语言
JScript:微软遵照ECMAScript标准实现的语言
1998年:W3C成立,改标准成为了国际ISO标准
3.JavaScript:
广义的JavaScript=ECMAScript(js的核心语法)+DOM(专门操作网页内容的API)+BOM(专 门操作浏览器窗口的API)
DOM:基于ES标准制定的专门操作网页内容的API。
API:浏览器已经实现的,开发人员直接使用的编程接口。
BOM:专门操作浏览器窗口的API;没有标准,各浏览器自行定义。
特点:
1.代码可使用任何文本编辑工具编写,语法类似于C和Java。
2.无需编译,有JavaScript引擎解释执行。
3.弱类型语言
4.基于对象
二.编写和调试:
4.如何编写和调试:
JS脚本程序,就是普通文本:用Deamwaerver编写
运行脚本,分为2种:
1.独立安装的JS解释器中进行运行:比如Node.js
2.浏览器的JS解释器
注意:*js程序区分大小写!
*每条程序的语句都用;结尾
何时使用console:控制台是专门调试程序的地方!
---在网页中编写JS:2处:
1.在
a.随页面加载过程顺序解释执行
b.
c.向页面中输出一行话:直接在body元素中写入html内容
使用页面的输出功能:docunment.writ("xxxxxx");
弹出功能:window.alert("xxxx"); --没alert一次,就弹出一次
每个框都会阻断浏览器的加载和程序执行过程
2.在元素的事件处理函数中:仅能编写少量
事件:浏览器自动或用户手动触发的元素状态改变
事件处理函数:on 事件名
本质是元素的一个属性,属性值是一个js语句
例:
3.使用外部js文件,单独存储js程序:
1.创建并编写.js文件:
三大文件都要保存为UTF-8编码
2.在页面中引入.js文件:
---加载和执行过程和
三.***变量
什么是变量:内存中存储一个数据的存储空间,再起一个名字。
何时使用:程序中反复使用的数据,都要先保存
如何使用:声明 赋值 取值
1.声明:在内存中创建一个新变量
如何声明:var 变量名 (仅声明,但未赋值,默认值为undefined)
注意:1.不能以数字开头
2.不能用保留字:js中以及预先使用的关键字
3.最好能见名知意:比如驼峰命名(第一个单子首字母小写,之后每个单词首字母大写)
2.赋值:将等号右边的数据,保存到等号左边的变量中
如何赋值:变量名=值,*对已经包含值的变量赋新值,新值将覆盖旧值*
3.取值: 只要使用变量名,在运行时,会被自动替换为变量中的值。
特殊情况:1.只声明,但未赋值的变量,可任意使用,输出为undefined。
2.从未声明的变量,不能使用,得到错误提示 Uncaught ReferenceError
3.从未声明的变量,缺可赋值 ---和var 不一样
强烈建议:必须使用var 声明变量
注意:只要在同一个页面中,前面进行了声明,赋值,后面就可以使用,但是再提前也无法超过本script
例1:
var hb="香辣鸡腿堡";
console.log(hb);
box="包子";
console.log(hb);
console.log(box);
输出分别为:“香辣鸡腿堡”“香辣鸡腿堡”“包子”
****声明提前:子啊程序正式执行前:都会将var声明的变量提前到当前脚本块的顶部集中声明,再开始执行程序。{***赋值留在原地}
四.常量:一旦初始化,值不能改变的量。
何时使用:程序中,一旦定义不可擅自改变的值,都要用常量保存。
如何创建:const 常量名=值;用作常量的名字都要大写
注意:
如果强求修改常量的值,不会报错,但也无法修改成功
const PI=3.14;
var deg=60;
PI=1;//报错?影响结果?
结果:不报错,也不影响结果
五.****数据类型:数据在内存中的存储形式
为什么要有不同数据类型:现实中不同类型的数据,都要专门的用途。
分类:2大类:“原始类型"的值和“引用类型”的对象
原始类型:值直接保存在变量本地的类型
5类:Number Srting Boolean Undefined Null
引用类型:值没有直接保存在变量本地的类型,但是变量中只保存指向实际数据所在位置的地址值
1.Number:表示所有数字
如何定义:凡是不加引号的数字,都是Number类型数据。
何时使用:只要做计算或者比较的数字,都不加引号。
比如:年龄,价格
所占空间:所有数字都是用64位二进制数来存储的 1byte=8bit
整数采用32位二进制存储 =为4个字节
---数值大小和所占空间大小无关
舍入误差:计算机中也有无法精确计算的数字而导致的计算结果精度偏差,不可避免
解决方案:按指定小数位数四舍五入 --n.toFixed(2)-->将计算结果按2位小数四舍五入
2.String:字符串,表示所有文字信息
如何定义:凡是用作显示的信息都要加引号,单双引号。
何时使用:凡是用作显示的信息都要加引号,JS中没有字符类型,所以一个字也要加引号
所占空间:字母或数字,每个1字节;每个汉字,2字节
JS的内存中都是用字符串的unicode号存储字符
unicode:人为给主要语言中的每个字符编一个号
***字符串一旦创建,值不可改变,非要改变,只能用新的字符串替换旧的字符串
特殊:+运算中,如果参与运算的都是字符串,则加法变为字符串拼接
3.Boolean:只有两个值:true ,flase
何时使用:只要保存对/错,真/假,成立/不成立,都用boolean类型表示。
如何定义:不带引号的true和flase就是boolean类型