JS特点、引用方式、书写格式、注释方式、代码调试及变量

版权声明:欢迎阅读,有误请指正,转载请申明。 https://blog.csdn.net/wx1995sss/article/details/85710199

JavaScript与ECMAScript关系:前者是编程语言,后者是实现前者的规范。
一、特点
1、主要用来向html页面添加动态效果(数据交互行为);
2、可以直接嵌套在html页面中,但是建议使用单独js文件,这样有利于结构和行为分离;
3、脚本语言,不需要经过预编译,在程序运行过程中被逐行解释执行;
4、相对安全的脚本语言,不被允许访问本地硬盘,且不能将数据存入服务器,只能通过浏览器实现信息浏览或交互,有效防止数据丢失和堆系统的非法访问。
5、弱类型,对使用的数据类型没有做出严格的要求;
6、基于对象,不仅创建对象,还可以拥有现有的对象;
7、事件驱动,js对用户的响应,是以事件驱动开发的方式进行的,网页中执行某种操作所产生的动作,称为事件(event);
8、跨平台性,绝大多数浏览器都支持,可以在多种平台下运行(windows、ios、linux、android等等)。
个人总结:js是基于对象通过嵌套或引用向html页面以事件驱动的方式添加动态效果的较安全的弱类型跨平台脚本语言。
二、引用方式
1、外部引用,可以放在head和body之中,使用script标签来引用;

<script type="text/javascript" charset="utf-8" src=""></script>

type声明文件类型(可以省略);charset定义文件编码,如果文件编码一致,可以省略;src文件引入路径。
2、script标签,可以放在head和body之中,在<script></script>标签里书写;

<script>alert("aaaaa");</script>

3、标签内部,不需要使用script标签,不触发不执行;

<p onclick="alert('cccc')">点我</p>

语法格式:<开始标签 on+事件类型=“js代码”></结束标签>
常用事件类型:
click点击、dbclick双击、
mouseover鼠标经过、mouseout鼠标离开、
mousemove元素移动、
mousedown鼠标按键按下、mouseup鼠标按键松开、
contextmenu右键打开上下文菜单、
mouseenter指针移动到元素上、mouseleave指针移出元素、
keydown任意键盘按键按下触发、keyup任意键盘按键松开触发、keypress任意键盘按键按下并松开。
三、书写格式
1、每个语句以分号结尾,不建议一行写多条语句;
2、代码块用{}包起来,花括号里面可以放很多条语句,具有缩进,缩进通常是4个空格(tab键);
3、{}可以多层嵌套,不建议过多嵌套,控制代码阅读难度;
4、建议语句的结尾加上分号,避免引擎自动补齐造成代码的语义改变。
四、注释方式
1、html代码注释<!--内容-->
2、css代码注释/*内容*/
3、js代码注释:单行//,代码块/**/
五、代码调试方式
1、alert(“内容”);//弹出框
2、console.log(“内容”);//控制台输出
3、prompt(“内容”);//提示以对话框的形式弹出
4、confirm(“内容”);//显示一个带有取消按钮的弹出框
5、document.write("<p>这里的内容由document.write输出</p>");//内容输出在文本流中。
六、变量
一、变量命名
1、必须以下划线、$或者字母开头,后面可以采用数字、$、字母、下划线,不能有空格或者特殊字符;
2、不能使用js的关键字和保留字作为变量;
3、变量名区分大小写;
4、变量命名尽量贴近变量的意义;
二、命名建议
1、Pascal标记法(大驼峰):单词首字母大写,例:MyName、MyFirstName;
2、camel标记法(小驼峰):从第二个单词开始首字母大写,例:myName、myFirstName;
3、匈牙利标记法:在Pascal标记法基础上,加一个小写字母或小写的字母序列以说明变量的类型,例:i(int)代表整数,s(string)代表字符串,sMyName,iMyAge。
三、命名避免保留字和关键字
关键字
break(跳出循环);
case(用于switch语句),catch(try语句,获取异常) ,continue(不执行当前循环语句,直接进入下一个循环迭代);
default(switch语句所有case不执行时执行), delete(用于删除对象的某个属性), do(do/while循环 );
else(if语句);
finally(try语句中可选), for(循环语句),function(函数) ;
in(for…in 语句用于对数组或者对象的属性进行循环操作), instanceof(用于判断一个变量是否是某个对象的实例), if;
new(实例化一个对象);
return(指定函数返回的值);
switch(选择,基于不同条件执行不同语句 );
this(指定一个对象然后去替代它),throw(抛出 ),try, typeof(判断变量类型);
var(variable变量), void(执行表达式但是不返回值);
while(循环语句)、 with(设置代码在特定对象中的作用域);
保留字
abstract(抽象), arguments(参数);
boolean(布尔值), byte(单字节);
char(字符), class(类),const(ES6常量);
debugger(调试器), double(双精度浮点型);
enum(枚举类型), extends(类声明或者类表达式中,以创建一个类,该类是另一个类的子类), export(用户自定义模块,规定对外接口),eval(计算某个字符串,并执行其中的的 JavaScript 代码);
final(修饰变量,参数,函数),float(浮动);
goto(仅是保留字);
implements(继承父类), import(用于在一个模块中加载另一个含有export接口的模块), int(整数), interface(接口);
long(表示一种整型);
native;
package,private(私有变量),protected(受保护的变量), public(公共变量);
short, super, static,synchronized(同步);
throws, transient;
volatile;
yield( 与return 关键字结合使用,向枚举器对象提供值);
js除去以上保留关键字外,还应该避免内置的对象、属性和方法,Java的保留关键字,Windows保留关键字,HTML事件句柄。
这里是菜鸟关于JS保留关键字的介绍
JS严格区分大小写,所以Break作为变量名会被浏览器识别,但不建议此类命名。
四、变量申明写法
ES5 var 变量名
ES6:
let:
1、用法与var声明变量类似,只是其声明变量的作用域在let所在的代码块中,在for循环中尤其明显;
2、不存在变量提升,在es5下使用var 声明变量存在变量声明提前的情况;
3、只要块级作用域中存在let命令,其块级作用域中的变量就受外界同名变量的影响,而且在有let声明的变量中,必须先声明再使用;
4、在相同的作用域中不能有同名的变量存在;
5、不论其中有一个变量是用var声明的还是在函数中传入的块级作用域可以嵌套,但是外层的作用域无法访问内层作用域的变量;
const:
1、const声明的是一个只读常量,修改常量值会报错,实际上不是const的值不能改变,而是变量指向的内存地址不能改变;
2、声明的常量,必须在一开始就初始化,不能等到后面在赋值。
五、变量作用域
变量分为局部变量和全局变量
局部变量:定义在函数体之内的(用{}包起来的);只对该函数可见,对其它还是不可见的,也可以叫做函数的作用域;
全局变量:定义所有函数体之外,它的作用范围是整个函数,在申明变量时,凡是没有带var关键字的,直接复制的变量都是全局变量。
访问规则:
函数体内可以访问父函数的变量;
父函数不能访问子函数的变量,如果要访问,可以使用闭包的方法来扩展函数内变量的作用域。

猜你喜欢

转载自blog.csdn.net/wx1995sss/article/details/85710199
今日推荐