JS入门熟知

JS是面向对象的语言

  1. 封装
  2. 继承
  3. 多态
  4. 聚集(对象中具有引用其他对象的能力)

JS使用中绝大多数情况不需要进行面向对象的设计,很多情况是使用已经设计好,准备好的对象,基于对象的语言.

JS的使用(引入)

  1. jsp、html中直接在script标签中书写
  2. 在script标签中引入

  注意:

    1. script 标签位置任意. 但是位置越靠前,执行越早.(重要)
    2. js 外部文件推荐扩展名是.js.但是其实任何后缀名都可以.
    3. 使用script标签引入外部文件,那么该script标签中就不要书写js代码了.

JS的基本语法

  • 变量声明

   变量声明使用var,变量区分大小写 str 和 STR 不是同一个变量. 字符串使用双引号("")或单引号(‘‘)包裹都可以.变量的类型可以随时改变.命名规则是匈牙利标记法.

    var str = 1; var str = "Hello";  //两者之间没有任何区别

  • 行尾使用 ";" 作为一行的结束符号.(可以没有";", 以折行符(回车)作为一行的结尾.)(不推荐)
  • js 中的注释有两种单行,多行

    单行注释"//"  多行注释 "/* */"

  • 封装代码块与 java 一样,使用{}.
  • 变量声明时, 前缀 var 也不是必须的.
      加var 和 不加 var 有什么区别? 如果不使用var,那么该变量是全局变量

JS的类型

  js中类型分为两种

    1. 原始数据类型
    2. 对象数据类型

  java中 基本数据类型有 byte short int long float double boolean char
  js中 原始数据类型有     number(数字,浮点型,整型)
             string(js语言的突破,没有char类型.)
             boolean
             null (用来标示引用数据类型的占位符.通常都是人为赋值.)var person = null;
             undefined (由null衍生出来的值,是当我们声明一个变量,)
                1.没有给该变量初始化值,那么系统会默认赋值为undefined
                2.函数中没有返回值,那么默认返回undefined
  原始数据类型 判断符:
    typeof  用来判断一个变量是哪种原始类型的.
    null会返回object, 是js中的一个bug,这个bug 被认为很贴切.所以保留了该bug.

JS中的语句

  java中有循环: for while-do do-while
     有判断: if switch
  js中语句 与java中一模一样!

  特殊: java中的增强for循环在js中没有.
  js中有for(var xx in xx) 语句.  用的很少,用来遍历对象的属性.

JS中运算符

  一元运算符
    一元加法,减法  
      var a = +1;
      var b = -1;
    在js中的高级应用.
      var c = +"1";   //进行类型转换
      var d = +"abc";   // 转换失败,返回number中的特殊值 NaN.

  Boolean 运算符 ! && ||
  js中自动类型转换. 转换规律 (重点)
    string  ==> "" 转换为false 其他都为true;
    number ==> 除了NaN,+0和-0.其他都转换为true.
    null ==> false
    undefined ==> false
    NaN特性:
      NaN参与的任何boolean运算返回值都是false. 除了!=,因为undefined是null衍生出的,所以 alert(undefined == null);// true
  比较运算符

    alert(11>3);  //true
    当运算符两端 , 一端是数字,一端是其他类型时, 其他类型会自动向数字类型转换
      alert("11">3);  // true
      alert(11>"3");  //true
    字符串在进行比较时 ,规律是: 比较首字符asc码. 如果一样,比较第2位...
      alert("11">"3");  // false
      alert("11">"1");  // true
      alert("abc">11);  //false

    等性运算符 == != ===
    全等于: === 比较时包括类型.

ECMAScript中的对象

  1. Object  是所有对象的超类.
  2. Function对象以及Function的创建

    1. var fun1 = new Function("a","b","alert(a+b);");
    2. var fun2 = function (a,b){alert(a+b);}
    3. function fun3(a,b){alert(a+b)}
  3. Function的调用
  4. js中函数的调用只看函数名称. 调用时内置对象arguments, arguments代表函数运行期间实际参数列表.
      arguments.length  实际参数个数
      arguments[0]   第一个参数.
      应用: arguments 实现函数的重载.
  5. 函数的返回
    1. 如果函数没有显示指定返回值,那么函数返回值为undefined.
    2. 使用return关键字,返回内容
    3. return 关键字,在js中也可以作为结束方法运行的功能.
    4. void运算符的应用.

ECMAScript中对对象的分类

  1. 本地对象
    内建对象   不需要创建实例.直接使用 Global Math
    主机对象   DOM BOM 两部分.
    ECMAScript中3个包装对象.
      String Number Boolean
    伪对象: string number boolean 这3个原始类型可以看作是伪对象, 能直接调用包装对象的方法和属性.
      String对象属性length
    重要的方法
      indexOf
      lastIndexOf
      charAt
      alert(str1.charAt(0));  //a
      charCodeAt 返回所在字符的asc码
      alert(str1.charCodeAt(0));  //97
      subString
      alert(str1.substring(0, 1));  //a
      slice 支持负数. 从右往左.
      alert(str1.slice(0, -1));  //a
    与正则结合的方法
      split
     
     replace
      match
      search

   Global对象

 

时间: 2024-09-28 08:53:53

JS入门熟知的相关文章

【 D3.js 入门系列 --- 9.6 】 打包图的制作

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 打包图( Pack ),用于包含与被包含的关系,也表示各个对象的权重,通常用一圆套一圆来表示前者,用圆的大小来表示后者. 先看本节所使用的数据:  city2.json 这是各城市所属关系的数据.我们现在要用 D3 的 layout 来转换数据,使其容易进行可视化处理. var pack = d3.layout.pack() .size([ width, heigh

Node.js入门:前后端模块的异同

通常有一些模块可以同时适用于前后端,但是在浏览器端通过script标签的载入JavaScript文件的方式与Node.js不同.Node.js在载入到最终的执行中,进行了包装,使得每个文件中的变量天然的形成在一个闭包之中,不会污染全局变量.而浏览器端则通常是裸露的JavaScript代码片段.所以为了解决前后端一致性的问题,类库开发者需要将类库代码包装在一个闭包内.以下代码片段抽取自著名类库underscore的定义方式. 1 (function () { 2 // Establish the

Node.js入门:异步IO

异步IO 在操作系统中,程序运行的空间分为内核空间和用户空间.我们常常提起的异步I/O,其实质是用户空间中的程序不用依赖内核空间中的I/O操作实际完成,即可进行后续任务. 同步IO的并行模式 多线程单进程    多线程的设计之处就是为了在共享的程序空间中,实现并行处理任务,从而达到充分利用CPU的效果.多线程的缺点在于执行时上下文交换的开销较大,和状态同步(锁)的问题.同样它也使得程序的编写和调用复杂化. 单线程多进程 为了避免多线程造成的使用不便问题,有的语言选择了单线程保持调用简单化,采用启

Node.js入门:包结构

JavaScript缺少包结构.CommonJS致力于改变这种现状,于是定义了包的结构规范(http://wiki.commonjs.org/wiki/Packages/1.0 ).而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题.require的查找机制明了之后,我们来看一下包的细节. 一个符合CommonJS规范的包应该是如下这种结构: 一个package.json文件应该存在于包顶级目录下 二进制文件应该包含在bin目录下. JavaSc

Node.js入门:文件查找机制

文件查找流程图 从文件模块缓存中加载 尽管原生模块与文件模块的优先级不同,但是都不会优先于从文件模块的缓存中加载已经存在的模块. 从原生模块加载 原生模块的优先级仅次于文件模块缓存的优先级.require方法在解析文件名之后,优先检查模块是否在原生模块列表中.以http模块为例,尽管在目录下存在一个http/http.js/http.node/http.json文件,require("http")都不会从这些文件中加载,而是从原生模块中加载. 原生模块也有一个缓存区,同样也是优先从缓存

Node.js入门:模块机制

CommonJS规范  早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来实现的,在这样的背景之下,一没有特色,二没有实用价值.但是随着JavaScript在前端的应用越来越广泛,以及服务端JavaScript的推动,JavaScript现有的规范十分薄弱,不利于JavaScript大规模的应用.那些以JavaScript为宿主语言的环境中,只有本身的基础原生对象和类型,更多的对

Node.js入门:事件机制

Evented I/O for V8 JavaScript 基于V8引擎实现的事件驱动IO. 事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://nodejs.org/docs/latest/api/events.html ).Event模块(events.EventEmitter)是一个简单的事件监听器模式的实现.具有addListener/on,once,removeListener,removeAllListeners,emit等基本的事件监听模式的方法实现

Node.js入门:Node.js&NPM的安装与配置

Node.js安装与配置  Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0.6.x的版本上介绍Node.js的安装和配置.(本文一律以0.6.1为例,0.6的其余版本,只需替换版本号即可.从http://nodejs.org/#download可以查看到最新的二进制版本和源代码). Windows平台下的Node.js安装 在过去,Node.js一直不支持在Windows平台下原生

《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

近期想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序.所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴请參考:<Node.js入门>CentOS 6.5下Node.js Web开发环境搭建笔记 Node.js是什么? 我们看看百科里怎么说的? JavaScript是一种执行在浏览器的脚本,它简单,轻巧.易于编辑,这样的脚本通经常使用于浏览器的前端编程.可是一位开发人员Ryan有一天发现这样的前端式