JS--我发现,原来你是这样的JS(二)(基础概念--躯壳篇--不妨从中文角度看js)
一、介绍
- 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第二篇(基础概念--躯壳篇),有着部分第三章的知识内容,当然其中还有我个人的理解。
- 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js更是难,中间需要不断的积累与重温。
- 本书不是读一两遍就能把这书吃透,需要多读,可谓温故而知新,可以为师矣。
很多人看这些厚的书都是三天打鱼两天晒网,很少能看下去,能记住的东西往往前3章的内容,所以我写博客就是为了能和大家一起来读这本书,一起学JS。
二、基本概念(躯壳篇)
首先要说的,JavaScript是一门高级语言,没错语言,语言就要有一定的语法,接地气的讲就像中文,中文也有一定的语法,比如怎样书写,一撇一划便形成汉字之美,这样就写出大家都懂得汉字。类似的JavaScript也有语法:
1.区分大小写
- 在js中的一切,如变量,函数名,操作符等都区分大小写。 如变量名为test 和 Test 是两个不同的变量。
2.标识符(就是自己去定义的名称,如变量,函数名,属性名,参数等)
- 由字母,下划线(_),美元符号($),和数字组成,且第一个字符不能以数字开头。如
3Ta
这样的命名是错误的。 - 命名方式建议使用驼峰式命名:如myFriend。
3.注释
- 单行注释
// 这是单行注释
- 块级(多行)注释
/*
* 这是多行注释
*/
4.严格模式
严格模式在ES5中加入,为了增强js代码的安全性和消除js的一些不合理异常的行为。
- 启动严格模式:
//在js中加入use strict 这条字符串
"use strict"
- "use strict"加入的位置(哪里想用加哪里):
1.如果需要整个js脚本都使用严格模式就在脚本第一行加入这句话
2.如果在函数中使用严格模式就在函数内部第一行加入这句话。
5.关键字和保留字
这么说吧,关键字和保留字都是一些特定的词,这些词不能在作为标识符使用,也就是你不能用来定义自己的东西,人家有申请专利。就像人家肯德基,你不能再取肯德基了吧,你最多来个肯基基是不是。
- 比如:if,else,do ,while,for ,break,var,let等等,还挺多,这个不用记,多敲代码就自然而然知道了。
6.变量
js是一门弱类型语言,它不像java的强类型,对于每个数据类型的声明都需要指出是什么类型的数据。而js的变量声明就用var这个操作符。
//声明一个变量,它可以用来保存任何类型的值,此处没对sum赋值,默认为undefined
var sum;
//声明一个变量并赋值,此处赋值了字符串
var message = "hello javascript!";
//此处再对message这个变量赋值数字12,是允许的,不会报错
message = 12;
注意点:
1.在没有使用var声明变量时,该变量是属于全局变量。
function setAge(){
//没有使用var定义,age为全局变量
age = 10;
}
//函数外部可以使用age
console.log(age); //10
2.在严格模式下,不使用var定义变量会报错。
7.语句
7.1 概念:
到语句了,语句这里ES给出定义:语句以一个分号结尾。这里语句就像中文的一句话,中文以句号结尾。语句可长可短,只要能表达到意思能让人明白意思,对于js语句就要让其解析器明白。(分号可以省略,但是不建议省略分号,避免出现不必要的问题)。
例子:
//声明语句
var sum = 1;
插插话:其实一个JavaScript的程序就是语句的集合,解析器一条条读下来一条条解析,你想表达的机器知道了,就执行相应操作,最终做好一件事。是不是感觉写个程序好比一篇理科生作文。
7.2 ECMA-262 规定了一组语句(流程语句)。
这里规定的语句就像的是它给了一组句型你,你通过这些句型能够更好来表达你的程序。看到这你会发现js和java的语法有些相似。
常用语句(句型)如下:
1.if语句(条件语句)
/*
*if语句模版
*如果if括号condition值为true就执行if后面的代码块,否则执行else后面的代码块
*/
if(condition){
//do something
}
else{
//do something
}
2.do-while(循环语句)
/*
*do-while语句模版
*do会先执行一次其后面的代码,如果while后面的expression条件为true就会继续执行do后面的代码块
*/
do{
//do something
}while(expression)
3.while(循环语句)
/*
*while模版
*当expression条件为true则执行代码块里的代码
*/
while(expression){
//do something
}
4.for循环语句
//模板
for(初始值,循环条件,一次循环后执行的代码){
//do something
}
//for循环例子:
var count = 100;
for(var i = 0; i<count ; i++ ){
console.log(i);
}
5.break 与 continue
break 和 continue都是对循环语句进行精准的控制的语句,break表示中断整个循环,而continue表示中断此次循环下面的代码执行,并跳到下一次的循环。
//break例子
//代码的输出结果是在控制台输出一个0后,结束运行。
var i=0;
while(i<10){
console.log(i);
i++;
break;
}
//continue例子
//每次遇到continue就会执行下一次循环,而continue后面的alert永远不会被执行,所以控制台会输出0-9,但是alert不会被执行。
var i =0;
while(i<10){
console.log(i);
i++;
continue;
alert(i);
}
6.switch
switch语句是一种判断语句,通过输入的内容来选择对应的处理方式,用于有限种的判断。
//switch例子
//根据i的值的不同而选择对应的case,每个case后面应加上break作为终结,不然会继续运行下去,直达遇到break。
switch(i){
case 1:
console.log(1);
break;
case 2:
console.log(2);
break;
case 3:
console.log(3);
break;
//default里代码是当没有以上case对应的值时执行,比如5
default:
alert("Other");
}
三、最后小结;
这次总结js的基本概念的一部分,我命之为躯壳,为什么说是躯壳,我们可以回顾一下,上面说的内容都是教人识字一样,告诉你们怎么写字(标识符写法,不能用关键字等规则),还有什么是语句(就教你们认识了什么是语句,给出的流程语句有哪些),给人感觉就是只有躯壳一样,那么下一篇便向其注入灵魂。
如果觉得这篇博客写得有点意思,就点个赞吧。
本文出自博客园:http://www.cnblogs.com/Ry-yuan/
作者:Ry(渊源远愿)
欢迎访问我的个人首页:我的首页
欢迎访问我的github:https://github.com/Ry-yuan/demoFiles
欢迎转载,转载请标明出处,保留该字段。
JS--我发现,原来你是这样的JS(二)(基础概念--躯壳篇--不妨从中文角度看js)的更多相关文章
- JavaScript--我发现,原来你是这样的JS(基础概念--躯壳,不妨从中文角度看js)
介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第二篇(基础概念--躯壳篇),有着部分第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的, ...
- JavaScript--我发现,原来你是这样的JS(基础概念--灵魂篇,一起来学js吧)
介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...
- JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)
一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容. 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js ...
- JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)
前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...
- 从Java的角度看前端JS各种框架
今天看到一篇不错的文章: 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs http://blog.csdn.net/uikoo9/art ...
- BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js
BAT 前端开发面经 —— 吐血总结 目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...
- 【three.js详解之二】渲染器篇
[three.js详解之二]渲染器篇 本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ...
- 从零开始学习Node.js例子四 多页面实现数学运算 续二(client端和server端)
1.server端 支持数学运算的服务器,服务器的返回结果用json对象表示. math-server.js //通过监听3000端口使其作为Math Wizard的后台程序 var math = r ...
- 从Chrome源码看JS Array的实现
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } .crayon-line spa ...
随机推荐
- Django自带的后台管理样式找不到的问题。
今天发现自己用uwsgi,nginx部署完服务器后,又想用自带的Django服务器进行后台管理调试,发现Django后代管理页面样式找不到.又查看了路径发现是正确的.网上看了很多方法.最后才发现自己把 ...
- POJ 2546
#include<iostream> #include<numeric> #include<iomanip> #include<algorithm> # ...
- git常用命令(todo...)
git init在目录中执行 git init,就可以创建一个 Git 仓库 git add test.javagit add 命令可将该文件添加到缓存(暂存区) git commit test.ja ...
- 如何使用gradle打jar包
1.进入工程目录,输入./gradlew,如显示"... build success" 则表示当前目录下gradle可用:如当前目录下无gradle,则在线下载 .. 2.输入./ ...
- vue教程3-07 vue-loader
vue-loader: vue-loader: 其他loader -> css-loader.url-loader.html-loader..... 后台: nodeJs -> requi ...
- webstorm无法显示左边文件夹目录的解决方法
webstorm无法显示左边文件夹目录的解决方法 方法一 view-->Tool Windows-->Project 就可以显示或者关闭 方法二 1.删除webstorm的配置文件夹 2. ...
- ADO.NET 4.5中的异步与流特性
.NET 4.5为仍在选择直接与DataReader系列类打交道的.NET开发人员带来了一些新的异步与流特性支持.SqlDataReader允许开发人员在减少一些便利性的基础上获得更好的性能.例如,该 ...
- Spring Cloud Eureka
搭建服务注册中心 创建eureka-center,pom.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...
- 用Elasticsearch做大规模数据的多字段、多类型索引检索
本文同时发布在我的个人博客 之前尝试了用mysql做大规模数据的检索优化,可以看到单字段检索的情况下,是可以通过各种手段做到各种类型索引快速检索的,那是一种相对简单的场景. 但是实际应用往往会复杂一些 ...
- Jenkins持久化集成使用
1.概述 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 持续的软件版本发布/测试项目 监控外部调用执行的工作 2.搭建 2.1环境准备 首先我们要准备搭建的环 ...