javas cript入门要了解的知识和书籍

想要进入IT行业,领取高额的薪资,这可是不容易的,首先需要自己掌握相关的专业知识,并且能够通过相应的考核。对于很多想要从事相关行业的人员来说,可能最好的方式就是先学习一些基本的知识和操作内容,以便能够奠定一定的基础。

  大多数人觉得学习Javas cript是一件容易的事情,其实也并没有错,js的确是一个容易上手的语言。这就导致很多人都会用Javas cript,但却很少有人能用的很精通的原因,因为他们大小看js这门语言的基础和内在了,基础,无论何时都是一个重要的存在,最直接的就是在你面试的时候,如果连js的数据类型都答不上来那是不是就太过分了。这一点课工场的培训班做的就很不错,理论与实践相结合,让学员能够熟练的掌握相关技术。接下来,就让我们一起总结一下Javas cript的基础。

  

  一、语法

  javas cript中的一切(变量、函数名和操作符)都区分大小写。

  标识符:就是指变量、函数、属性的名字,标识符要求如下

  1 第一个字符必须是一个字母、下划线(_)或一个美元符号($)

  2 其他字符可以是字母、下划线、美元符号或数字

  3 不能把关键字、保留字、true、false、null用作标识符

  注释

  // 单行注释

  /*

  *

  * 多行注释

  *

  */

  严格模式

    严格模式是ES5引入的,严格模式定义一种不同的解析和执行模式,在严格模式下,对某些不安全的操作会跑出错误

  // 在整个脚本中启用严格模式,可以在顶部添加如下代码

  "use strict"

  // 也可以指定函数在严格模式下执行

  function doSomething(){

  "use strict"

  // ....

  }

  二、变量和数据类型

  变量

  1、ESCMs cript中的变量是松散类型的,即Javas cript使弱类型语言,换句话说js中的变量仅仅是一个保存值得占位符而已,可以保存任何类型的值。

  2、定义变量用 var 操作符。

  3、使用var操作符定义的变量将成为定义该变量的作用域中的局部变量。

  4、在函数作用域(块作用域)中可以通过省略var定义全局变量(不推荐)。

  数据类型

  1、js中有5中基本数据类型和1中复杂数据类型他们分别是

  Undefined、Null、Boolean、Number、String和Object

  2、typeof操作符用来检测变量的数据类型,对一个值使用typeof操作符会返回字一个 字符串 ,标示着该值得类型:

  “undefined” —- 如果这个值未定义

  “boolean” —- 如果这个值是布尔值

  “string” —- 如果这个值是字符串

  “number” —- 如果这个值是数值

  “object” —- 如果这个值是对象或null

  “function” —- 如果这个值是函数

  3、js的6中数据类型与使用typeof判断出来的数据类型并不对应,区别就在于使用typeof得到的类型标示中没有”null”,而是多了一个”function”,其他的都是一样的,还要注意的就是对null是用typeof时会返回”object”,并且typeof操作符得到的是字符串。

  三、语句

  if语句

  语法:

  if(条件){

  }else if(条件){

  }else{

  }

  解释:

  其中,条件可以是任意表达式,而且对这个表达式的求值结果不一定非得是Boolean值,ES会自动调用Boolean()转换函数将这个表达式的结果转换成一个布尔值。

  while语句

  语法:

  while(条件){

  something...

  }

  解释:

  其中条件同if语句中的条件,while语句是前测试循环语句,即在执行循环体之前就要对条件表达式求值,所以循环体有可能永远不会执行。

  do-while语句

  语法:

  do{

  something...

  }while(条件)

  解释:

  其中条件同if语句中的条件,do-while语句是后测试循环语句,即在对条件表达式求值之前,循环体中的代码至少被执行一次。有趣的记法就是(while是先问再揍,do-while是揍完再问)。

  for语句

  语法:

  for(初始化代码, 条件, 执行循环体后要执行的代码){

  something...

  }

  解释:

  for语句也是一种前测试循环语句,所以循环体也有可能永远不会执行,for语句和while语句的区别就是,在执行循环之前初始化变量和定义循环后要执行的代码的能力。

  for-in语句

  语法:

  for(property in expression){

  something...

  }

  解释:

  for-in语句是一种精准的迭代语句,用来枚举对象的属性,需要注意的是,for-in语句输出的属性名的顺序是不可测的,因浏览器而异。

  switch语句

  语法:

  switch(表达式){

  case value :

  statement

  break;

  case value :

  statement

  break;

  case value :

  statement

  break;

  default :

  statement

  }

  解释:

  switch语句是与if语句最密切的流程控制语句,Javas cript中的switch语句有很多自己的特色,首先:可以在switch语句中使用任何数据类型,其次:每个case的值(即value),不仅仅只能是常量,也可以是变量甚至表达式。

  四、函数

  Javas cript中的函数使用function关键字来声明

  function(arg0, arg1, arg2, ..., argn){

  statements

  }

  理解参数

  Javas cript中的参数有一下特点:

  不介意你传递几个参数,即使你在定义函数时规定了接收几个参数,它都不会报错。

  不在乎你传递的参数是什么数据类型。

  之所以会这样,是因为Javas cript函数内部的参数使用一个类数组对象来表示的,所以函数接收到的始终都是这个类数组对象,而不关心这个对象里面有什么参数,在函数体内可以是用arguments对象来访问这个类数组对象,可以使用方括号的语法如:arguments[0]、arguments[1]等,这个事实说明一个重要的特点:

  命名参数并不是必须的,它只是提供了便利而已。

  通过arguments的length属性获知有多少个参数传递给了函数:

  function howManyArgs(){

  alert(arguments.length);

  }

  howManyArgs("string", 1); // 2

  howManyArgs(); // 0

  howManyArgs(1); // 1

  关于arguments有一点比较有意思,就是它的值永远与对应的形式参数同步,即修改了arguments[0]的值会使对应的命名参数的值也发生相应的改变。但是这并不是说他们访问的是相同的内存空间,他们有独立的存储空间,只不过值会同步而已,另外如果值传递一个参数,修改arguments[1]的值是不会改变对应的命名参数的值的,这是应为,arguments.length的长度是由传递参数个数决定的,而不是命名参数的个数决定的,在这里再次强调一次, 命名参数只是提供了便利而已,没有任何其他作用 。

  没有重载

  由于Javas cript中的函数没有函数签名的特征,所以没有重载,不过可以通过检查传入函数的参数的类型和数量作出不同的反应来模拟重载。

  下面给大家推荐一些书籍

  入门推荐首选书籍:《Javas cript DOM 编程艺术 》

  书内容简单,易学,上手快,编程思想严谨。好的入门书,对你未来的编程都会有着深远的影响。此本书不辜负这个历史使命。

  基础学习书籍:《Javas cript 权威指南》

  《Javas cript DOM 编程艺术 》只是入门,介绍了编程思想和很简单的程序语法以及 DOM 的基本方法。而《Javas cript 权威指南》详尽的介绍了 Javas cript 的各种函数以及特性。至于后面差不多 500 页左右的参考(Javas cript 核心参考、客户端 Javas cript 参考、DOM 参考)可以暂时不看。

  进阶提升书籍:《Javas cript 高级程序设计》

  在思想上强调 OPP 的概念,内容上注重实用,可以从中学到更多更细致的知识,并且注重浏览器差异的解决。 但如果要阅读必须有一定的 Javas cript 的基础(或者读完前两本),要不然会带来挫折感,打击学习的热情。

  拓展学习篇:《Ajax 实战》

  比较全面深入的介绍了 Ajax 知识,其中 Ajax 开发的思想和 Ajax 开发中的设计模式等还是很值得学习。最好在《Javas cript 高级程序设计》基础上阅读此书,可以很好的帮助理解该书的内容。当然对于没有后台语言基础的朋友来说,阅读起来还是有一定的障碍的。

  Javas cript 水平到一定程度,书看得再多也不能得到最后技术的提升,那时候就需要实践,自己写代码,深入到开发中锻炼,理论结合实际,才会提升价值。

转载于:https://blog.51cto.com/12848275/1922613

javas cript入门要了解的知识和书籍相关推荐

  1. 【概念简介】编辑器及第一个Javas cript程序

    [概念简介]编辑器及第一个Javas cript程序 Javas cript编辑器 在编写Javas cript代码的过程中,一款好的编辑器能让我们事半功倍.目前市面上流行的Javas cript编辑 ...

  2. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  3. 网络知识入门:路由器基础知识全接触

    网络知识入门:路由器基础知识全接触 发布时间:2008.05.29 07:01     来源:赛迪网    作者:月伴雨 路由器综述 路由器是互联网的主要节点设备.路由器通过路由决定数据的转发.转发策 ...

  4. RHEL8.0快速入门系列笔记--理论知识储备(一)

    RHEL8.0快速入门系列笔记–理论知识储备(一) 红帽公司发布Linux8.0系统已经有一段时间,最近准备学习关于RHEL8.0的相关新特性.根据官方介绍:RHEL8.0在云/容器化工作负载方面做了 ...

  5. 区块链需要学习哪些东西_区块链入门需要学哪些知识?

    区块链入门需要学哪些知识? 区块链技术近年来发展迅速,全球范围内都掀起了区块链的热潮. 那么区块链入门需要学哪些知识? 首先学习区块链需要知道区块链与编程语言之间的关系 1.区块链是一种编程思想,使用 ...

  6. 知识图谱入门 【九】- 知识问答

    知识图谱入门 [一]- 认识图谱技术 知识图谱入门 [二]- 知识表示与知识建模 知识图谱入门 [三]- 知识抽取 知识图谱入门 [四]- 知识挖掘 知识图谱入门 [五]- 知识存储 知识图谱入门 [ ...

  7. 小白入门!网络安全基础知识详解(附知识问答)

    小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...

  8. 深入了解计算机基础,计算机入门《计算机基础知识》(全16集)

    计算机入门<计算机基础知识>是一套比较经典的老教程,里面个别章节有些过时,但是原的东西讲的很好永不过时,对于想了解电脑.计算机的初学者是很好的教程,课程讲的十分详细.深入浅出,相对于< ...

  9. [数据与分析可视化] D3入门教程1-d3基础知识

    d3.js入门教程1-d3基础知识 文章目录 d3.js入门教程1-d3基础知识 1 HTML介绍 1.1 什么是HTML? 1.2 自定义文档样式CSS 1.3 构建svg图形 2 d3绘图入门 2 ...

最新文章

  1. 在化学教学中怎么用ChemOffice
  2. elasticsearch分组统计,取最大值、最小值、求和
  3. php把400个数组建二维,请教怎么将多维数组转换为二维数组
  4. cups支持的打印机列表_Win10“Microsoft Print to PDF”虚拟打印机不见了,如何找回?...
  5. 线程---生产者消费者问题
  6. 使用“时间机器”备份您的 Mac
  7. URAL 1404. Easy to Hack! (模拟)
  8. linux服务器磁盘陈列
  9. http系列---Apache AB测试工具
  10. 随机网络与无标度网络详解
  11. Unity分屏之使用TUIO实现互动投影
  12. vs 发生错误,需要终止调试... HRESULT=0x8000ffff。ErrorCode=0x0 解决办法
  13. StrngBuffer可变字符串
  14. windows家族介绍
  15. int数据类型的取值范围是多少?怎么计算的?
  16. AD生成BOM表_材料清单 (Bill of Material)
  17. windows下MySQL修改root密码
  18. 【IP地址】IP地址与子网划分
  19. 为什么我们选择基于 Flink 搭建实时个性化营销平台?
  20. doris 分片与副本

热门文章

  1. 服务器9002端口网页打不开,windowservice2012r2和2008,三台服务器报tcpip4227警告,导致本地端口不能被使用的问题...
  2. 日本自动外币兑换机公司ActPro在两年半时间内占据全球市场份额第一名
  3. 实战 - 谷粒商城项目:高级上篇First
  4. AD转换器的主要指标
  5. 网络分析法(Analytic Network Process,ANP)
  6. SRS流媒体服务器架构设计及源码分析丨音视频开发丨C/C++音视频丨Android开发丨嵌入式开发
  7. 安卓开发学习之Room数据库的使用
  8. B2B平台的运作方式
  9. 一文讲清楚MySQL事务隔离级别和实现原理,后台开发人员必备知识
  10. 软件测试面试中会碰到sql语句的笔试题