一、介绍

  • 这是红宝书(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)的更多相关文章

  1. JavaScript--我发现,原来你是这样的JS(基础概念--躯壳,不妨从中文角度看js)

    介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第二篇(基础概念--躯壳篇),有着部分第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的, ...

  2. JavaScript--我发现,原来你是这样的JS(基础概念--灵魂篇,一起来学js吧)

    介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...

  3. JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)

    一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容. 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js ...

  4. JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)

    前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...

  5. 从Java的角度看前端JS各种框架

    今天看到一篇不错的文章: 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs http://blog.csdn.net/uikoo9/art ...

  6. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  7. 【three.js详解之二】渲染器篇

    [three.js详解之二]渲染器篇   本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ...

  8. 从零开始学习Node.js例子四 多页面实现数学运算 续二(client端和server端)

    1.server端 支持数学运算的服务器,服务器的返回结果用json对象表示. math-server.js //通过监听3000端口使其作为Math Wizard的后台程序 var math = r ...

  9. 从Chrome源码看JS Array的实现

    .aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } .crayon-line spa ...

随机推荐

  1. javascript数据结构与算法--高级排序算法(快速排序法,希尔排序法)

    javascript数据结构与算法--高级排序算法(快速排序法,希尔排序法) 一.快速排序算法 /* * 这个函数首先检查数组的长度是否为0.如果是,那么这个数组就不需要任何排序,函数直接返回. * ...

  2. 转载:Java、C#双语版配套AES加解密示例

    转载,原文出处 http://www.cnblogs.com/lzrabbit/p/3639503.html 这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己 ...

  3. 抓包和测试Api类工具

    1.PostMan  测试api 2.Fiddler4抓包工具使用教程一

  4. 再学Java 之 HashMap的底层实现

    今天参加欢聚时代的面试,我说我自己依靠自己的理解重新实现过HashMap.描述我自己的实现思想后,面试官问“hashmap”底层如果用数组不是效率比较低吗,不是更应该用红黑树吗?我一下子就蒙了.用数组 ...

  5. 解析Service之你需要了解的一些东东

    何为Service Service,俗名服务.在Android系统中,Service与Activity就像一个妈生的,不仅长得像,而且行为(生命周期)也有一些类似.对于Activity来说大家肯定不会 ...

  6. docker cgroup 技术之memory(首篇)

    测试环境centos7 ,内核版本4.20 内核使用cgroup对进程进行分组,并限制进程资源和对进程进行跟踪.内核通过名为cgroupfs类型的虚拟文件系统来提供cgroup功能接口.cgroup有 ...

  7. MySQL的视图view,视图创建后,会随着表的改变而自动改变数据

    首先是创建视图 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `new_view` A ...

  8. 后台线程(daemon)

    概念     所谓后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分.因此,当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台线程. ...

  9. 用new关键字对一个String 变量赋值和用literal值直接赋值有什么不同(转)

    String str1="ABC": 和String str2 = new String("ABC"); 有什么区别. String str1="AB ...

  10. css3 2D转换(2D Transform) 动画(Animation)

    transform 版本:CSS3 内核类型 写法 Webkit(Chrome/Safari) -webkit-transform Gecko(Firefox) -moz-transform Pres ...