javascript(一):javascript基本介绍及基本语法
什么是javascript?
javascript是一种直译型脚本语言,是一种动态类型、弱类型、基于原型的语言。(所谓“脚本语言”:指的是它不具有开发操作系统的能力,只是用来编写大型运用程序的脚本!)
javascript本身不提供任何与I/O(输入输出)相关的API,都是靠宿主环境提供!
常见的宿主环境:1.浏览器; 2.服务器,即Node项目。
宿主环境是浏览器,提供的额外API主要是三类:1.浏览器控制类(操作浏览器);2.DOM类(操作网页的元素);3.web类(实现互联网功能)
如果宿主环境是Node,提供的API:文件操作API;网络通信API等等。
javascript历史:
javascript与国际标准化组织ECMA(European Computer Manufaturers Association)的关系:
总结就是:ECMAScript是javascript的规格、标准;javascript是ECMA的实现!
ECMAScript只是用来标准化javascript这门语言的基本语法结构,与部署环境相关的标准是由其它标准规定,如DOM的标准由W3C制定!
ECMAScript的发布:
2009年12月,ECMAScript 5.0发布;
2011年6月,ECMAScript 5.1发布;
2015年6月,ECMAScript 6发布,并更名为“ECMAScript 2015”
更多有关javascript历史,可参考阮一峰教程
相关周边大事记:可参考
javascript变量:
1+1;//没有意义,不报错
;;;//空语句,不报错
var a=1;//建议总是使用var 来申明变量!
b=1;//总是创建了全局变量
// console.log(a+" "+b);
console.log(a,b);
delete a;//delete无效
delete b;//删除成功
console.log(a);
console.log(b);//此时b被删除,报错
运行结果:
变量提升:
javascript引擎的工作原理:先解析代码,获取所有被申明的变量,然后再一行一行运行。
这样造成的结果是:所有变量的申明语句,都会被提升到代码的头部。这种原理叫变量提升(hoisting)
//相当于var c; console.log(c); c=1;
console.log(c);
var c=1; console.log(d);
d=10;
运行结果:
undefined:表示变量c已经申明,但是未被赋值!
d is not definded:表示变量d没有申明。(d不是var命令申明的,javascript引擎不会将其提升!)
注释:
单行注释://
多行注释:/* */
历史上,由于javascript兼容html代码注释,所以<!--和-->也被视为单行注释(个人不推荐这种写法!)
<!-- 这里可以写注释内容
--> 这里可以写注释内容,注释符号必须在行首!否则会报错,或被当成运算符
var e=1;
if(e -->0){//相当于e-- >0
console.log(e);//输出0
}
区块:
使用大括号包括起来的语句,就是block(区块)。
注意:javascript区块不构成单独的作用域(scope)。即区块中的变量与区块外的变量,属于同一个作用域!(C++等语言出现这种情况会报错!)
for(var i=0;i<5;i++){
console.log(i);
}
console.log(i);//输出5
switch:(使用严格相等运算符===比较!)
var x=1;
switch (x) {
case true:
console.log('first step');
break;
case false:
console.log('second step');
default:
console.log('switch 中使用的是===严格相等运算符');
break;
}
运行结果:
break和continue语句:(默认只针对一层循环!)(循环指的是while和for循环等)
break:跳出循环!
continue:立即终止本轮循环,返回循环结构头部,开始下一轮循环!
var z=10;
while(z<=10){
z--;
if(z===9){
continue;//跳转到z--
}else{
console.log(z);
}
if(z===8){
console.log(z);
break;//跳转到while外面
}
}
标签:javascript语句前面可以有标签(label),相当于定位符,用于跳转到相应位置。
abc://可随意起名,不需加引号
for(j=0;j<3;j++){
for(k=0;k<=j;k++){
if(k===j && k===1)
break abc;//跳出了这两层循环!
else
console.log(j+" "+k);
}
}
同理:continue后面也可加标签!满足条件时,跳过当前循环,进入下一轮外层循环;如果continue后面不加标签,则只能进入下一层内层循环!
本文参考链接:阮一峰javascript标准参考教程
javascript(一):javascript基本介绍及基本语法的更多相关文章
- JavaScript (一) js的介绍及基本语法变量
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.JS 的 介绍 1.JavaScript :简称 : js js 分为三个部分: 1. ECMASc ...
- JavaScript function函数种类介绍
JavaScript function函数种类介绍 本篇主要介绍普通函数.匿名函数.闭包函数 1.普通函数介绍 1.1 示例 ? 1 2 3 function ShowName(name) { ...
- 教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
摘录 文章主要是介绍了通过一个第三方类库RazorJS,实现Javascript 文件里使用 .Net MVC Razor 语法,很巧妙,推荐给大家 相信大家都试过在一个 View 里嵌套使用 jav ...
- JavaScript压缩工具JSA使用介绍
JavaScript压缩工具JSA使用介绍 JSA绝对是我使用过的JS压缩工具中最上乘的一个.认识它是从ligerUI开始.在ligerUI的QQ讨论组里,大神--ligerUI的作者告诉我他的lig ...
- JavaScript语言精髓(1)之语法概要拾遗(转)
JavaScript语言精髓(1)之语法概要拾遗 逻辑运算 JavaScript中支持两种逻辑运算,“逻辑或(||)”和“逻辑与(&&)”,他们的使用方法与基本的布尔运算一致: v ...
- JavaScript中if语句优化和部分语法糖小技巧推荐
前言 在前端日常开发过程中,if else判断语句使用的次数应该是比较频繁的了,一些较为复杂的场景,可能会用到很多判断,在某个代码块使用很多if else时,代码会显得较为冗余,阅读起来不够清晰. 除 ...
- 关于sass的介绍和基本语法
引入 什么是sass?sass是css预处理器. 那预处理器又是什么?css本身不是一种编程语言,而预处理器是用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件. 如今主流的预处理器 ...
- 《编写可维护的JavaScript》——JavaScript编码规范(五)
语句和表达式 在JavaScript中,诸如if和for之类的语句有两种写法,使用花括号的多行代码或者不使用花括号的单行代码.比如: //不好的写法,尽管这是合法的JavaScript代码 if (c ...
- JavaScript 对象JavaScript 对象
JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. 所有事物都是对象 JavaScript 提供多个内建对象,比如 String. ...
随机推荐
- MySQL Community Server 8.0.11下载与安装配置
一.下载 1.选择合适的安装包,我在这里下载的是目前最新的安装包,8.0.11,而且我选择下载的是解压版的,安装版的话,安装会比较麻烦. MySQL Community Server下载链接:http ...
- gitlab+jenkins多项目,多依赖,继承等上下级项目关系的自动部署
案例: 现有三个项目,Common,entity,serviceAPIentity依赖于Common,serviceAPI依赖于entity,也就是说common的下级项目是entity,而entit ...
- keepalived基础原理
keepalived介绍 设置初衷是为了高可用ipvs 通过脚本可以实现高可用nginx或者haproxy调度器, 基于vrrp协议完成一个固定的IP可以在集群中不同的节点进行流动.为ipvs集群的各 ...
- NYOJ 会场安排问题
#include<iostream> #include<stdio.h> #include<string.h> #include<queue> #inc ...
- TCP、UDP和HTTP详解
http:是用于www浏览的一个协议.tcp:是机器之间建立连接用的到的一个协议. 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.在网络层有IP协议.ICMP协议.ARP协议.R ...
- vue中indexDB的应用
// indexedDB.js,浏览器本地数据库操作 export default { // indexedDB兼容 indexedDB: window.indexedDB || window.web ...
- COFF,amd64.vc90.mfc两个布署的问题
今天解决了两个bug (1)一个是COFF文件损坏,因为装了vs2010和vs2013,搜索C:\Program Files(x86)文件夹下的cvtres.exe.出现了VC10和VC12的4个,x ...
- Mac charles 抓取https请求,安装证书后还是显示unknown
https://blog.csdn.net/qq_23114525/article/details/81460840 1. 配置证书 2. 设置钥匙串信任 3. 设置手机代理 端口号需要对应设置的端口 ...
- 【设计模式】用追MM来解释23种设计模式,转
创建型模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了.麦当劳和肯德基 ...
- Linux下修改MySQL数据库字符编码为UTF-8解决中文乱码
由于MySQL编码原因会导致数据库出现乱码. 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 &g ...