1、Javascript前世今生
   1.1、什么是Javascript
      Javascript运行于Javascript 【解释器/引擎】中的解释性脚本语言
      Javascript运行环境:
      1、Javascript解释器 :NodeJS
      2、嵌入在浏览器中的内核(引擎)
   1.2、Javascript 发展
      1、1992年 Nombas公司 开发了一款脚本语言 ScriptEase ,可以嵌入在网页中
  大概在 1992 年,一家称作 Nombas 的公司开发了一种叫做 C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言。Cmm 背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持与 C (和 C ++)足够的相似性,以便开发人员能很快学会。这个脚本语言捆绑在一个叫做 CEnvi 的共享软件中,它首次向开发人员展示了这种语言的威力。
         Nombas 最终把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)听起来过于消极,同时字母 C “令人害怕”。
         现在 ScriptEase 已经成为了 Nombas 产品背后的主要驱动力。
      2、1995年 Netscape[neitskeip]公司(美国Netscape公司,以开发Internet浏览器闻名) 为 [ˈnævɪgeɪtə(r)]Navigator2.0浏览器开发了一款脚本语言 LiveScript ,
         为了赶时髦 将其命名为 Javascript。Javascript与Java没有一点关系
      3、1996年,Microsoft[maikrisouft] ,为了IE3.0,发布了一个Javascript克隆版本 JScript
      4、1997年 Javascript1.1 作为草案提交给了 ECMA(欧洲计算机制造商协会)
         --> ECMA-262标准 -->ECMAScript
    1.3  Javascript (JS)的组成:
   1、核心(ECMAScript, ES)
          2、文档对象模型(DOM,Document Object Model) 一套操作页面元素的API
             DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作
          3、浏览器对象模型(BOM,Borowser Object Model) 弹出框、控制浏览器跳转、获取分辨率等 一套操作浏览器功能的API.
    1.4  Javascript特点
         1、任何编辑工具都可以编写Javascript,语法类似于Java,C,...
         2、无需编译
         3、弱类型语言
          由值来决定数据类型
  强数据类型:由数据类型 决定值
    1.5 基于对象的编程语言
         万物皆对象
 
     
    1.6 Javascript的用途
         JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
  最初的目的是为了处理表单的验证操作。
 ### JavaScript现在的意义(应用场景)
 JavaScript 发展到现在几乎无所不能。
 1. 网页特效 客户端数据计算 表单验证 非空验证 数据范围验证 浏览器事件的触发和处理 
 2. 服务端开发(Node.js) 服务器的异步数据提交(ajax)
 3. 命令行工具(Node.js)
 4. 桌面程序(Electron)
 5. App(Cordova)
 6. 控制硬件-物联网(Ruff)
 7. 游戏开发(cocos2d-js)
    JavaScript和HTML、CSS的区别
 1. HTML:提供网页的结构,提供网页中的内容
 2. CSS: 用来美化网页
 3. JavaScript: 可以用来控制网页内容,给网页增加动态的效果
2、使用javaScript
   2.1 浏览器说明
 浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。
 通俗的讲:可以显示页面的一个软件,
 国内网民计算机上常见的网页浏览器有,QQ浏览器、Internet Explorer、Firefox、Safari,Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、傲游浏览器、世界之窗浏览器等,浏览器是最经常使用到的客户端程序。
 常用的五大浏览器:chrome,firefox,Safari,ie,opera
 我们用chrome(谷歌浏览器)
   2.2、JavaScript初体验(JavaScript的书写位置)
        CSS:行内样式、嵌入样式、外部样式
       A:写在行内
  <input type="button" value="按钮" onclick="alert('Hello World')" />
       B:写在script标签中
  <head>
    <script>
      alert('Hello World!');
    </script>
  </head>
      C: 写在外部js文件中,在页面引入
 <script src="main.js"></script>
      注意点
         引用外部js文件的script标签中不可以写JavaScript代码
   2.3语句
      被Javascript引擎所解释执行的一句代码
      组成:
           表达式、关键字、运算符
    运算符:+,-,*,/,%,> ....
    表达式:由一个或多个运算符以及一个或多个操作数组成的。 如:1+2,
      特点:以分号表示结束
            console.log();
     document.write();
     window.alert();
      习惯:一行只写一条语句
      注意:严格区分大小写
            console.log();
     console.Log();
   2.4、注释
         单行注释://
  多行注释:/* */
     /*
          /*
  
   */
    
     */
     /*
     console.log();
     /*window.alert();
     document.write()*/
     console.log();*/
3、变量
   内存 : 临时性保存据算计程序在【运行过程中】要用到的数据。
   TB->GB->MB->KB->B->bit
   8bit = 1B
   1024B=1kb
   Javascript
   硬盘 : 永久性保存数据
   0x000000000000000000a13247aaccxx
   3.1、什么是变量
      就是内存中的一段空间,用于保存程序运行过程中要用到的数据。就是存储数据的容器。
   3.2、为什么要使用变量
      使用变量可以方便的获取或者修改内存中的数据
   3.3、什么是变量名
      内存空间的一个别名,为了方便记忆。即变量的名字。
   3.4、如何使用变量 到内存中开辟一段空间用于保存数据
       语法:var 声明变量
             var age;
      变量的赋值
          将数据保存进变量
             运算符:=   赋值运算符
      语法:
      变量名=值;
 var name;
      name="张无忌";    
  
        初始化:声明变量并赋值
     var 变量名称=值;
 注意:没有被赋值的变量自动取值为undefined
 var name;
 var age;
 var hobby;
 一条语句中声明多个变量:
 var name,age,hobby;
 var name="张三丰",age=30;
     3.5、变量名命名规范
         1、要求
     1、不允许使用关键字以及保留关键字命名
        标准关键字:
        eg : var , function , if , for ,true,false ...
        保留关键字:
        class,int,float,double ... ...
  2、命名规范
     a、可以包含字母、数字、下划线 _、$
     b、不能以数字开头
        var name;
        var name1;
        var 1name;错误
     c、不允许重复
     d、尽量见名知意
        var name;
        var age;
        var a,b,c,d,....aa,ab,ac,ad;
        var xingming,nianling;
     e、推荐采用
          匈牙利命名法
       控件缩写+功能
       txtName
       rdoGender
       chkHobby
       selCity
   下划线命名法
       _功能名称
       _name;
       _age;
   驼峰命名法
     如果变量名称由多个单词组成,第一个单词全部小写,第二个单词开始,首字符变大小
     userName
     txtusernmae --> txtUserName
    下面哪些变量名不合法
  ```
   a    
   1
    age18
    18age
    name
   $name
   _sex
   &sex
    theworld  theWorld
      3.6、变量使用注意问题
         1、未初始化变量的使用
     只定义未赋值,值为undefined
     未定义,使用,错误,not defined
  2、在可能的情况下,声明变量时尽量初始化
     var age=10;
     var name="张三";
     var isHappy=true;
  3、将变量的声明和赋值分开操作
     var name;
     var age;
     name="";
     age=18;
  4、对变量进行的存取操作
     1、设置变量的值(赋值,存)
         =
  var name="张三丰";//张三丰
  name="张无忌";//张无忌
  name+="殷素素";//张无忌殷素素
  name = name + "张翠山";//张无忌殷素素张翠山
  name = name+""; ==> name+="";
  特殊:
     var i=10;
     i++;
     ++i; ==> i=i+1;
  注意:赋值时,=的左边一定是变量
     2、获取变量的值(取值)
         var uname="张无忌";
  console.log(uname);
  var newName = uname;
  uname : 取值操作(=右边使用)
  newName : 赋值操作(=左边使用)
4、运算符 
   1、算数运算符
      +,-,*,/,%
      %:取余(模),计算两个数字相除后的余数
        5%2 结果为 1
 3%5 结果为 3
 常用场合:
    1、获取数字的最后一位
       1234
       1234%10=123 ... 4
       1234%100 = 12 ... 34
     
    2、判断奇偶性 或 判断 是某数字的倍数
       58 % 2 结果是否为 0?
       78 是 3的倍数吗??
       78 % 3 结果是否为 0 ?
 + :
    1、求和:数字类型的数值求和
    2、"" 与 +联用 ,作用是追加
       "张无忌" + 123 结果为:张无忌123
       123 + "张无忌" 结果为:123张无忌
       12+25 结果为:37
       "12"+25 结果为:1225
       '12'+25 结果为:1225
 注意:由算数运算符 与 操作数 组成的表达式,称为 算数表达式
5、数据类型
   1、什么是数据类型
      保存在内存中的数据的类型,根据不同的类型内存中所开辟的空间也不一样
   2、数据类型
      1、原始类型 (基本类型)
         1、number 类型
     数字
     可以表示 32 位 (4字节)的整数,或64位(8字节)的浮点数
     浮点数:小数
     var age;
     age=12; //number
     age=24.5;//number
  2、string 类型
     字符串
     一系列的文本数据
     注意:赋值时,必须使用 " " 或 ' ' 扩起
     var name="张三丰";//string
     var age = "12"; //string
     特殊字符,可以通过转移字符实现
     "Hello World"
     console.log(""Hello World"");错误
     \ 作为开始
       \" : 表示一个 "
       \' : '
       \n : 换行
       \t : 制表符
       \\ : \
 
       console.log("Hello World");
  3、boolean 类型
     布尔
     只表示 肯定(真)  或  否定(假)的数据
     值:true(真) 和 false(假)
     使用场合:作为程序的条件(判断、循环)
     在与 number 类型做运算时,true=1,false=0
  4、null 类型
     空
  5、undefined 类型
     未定义
     表示 不存在的数据
      2、引用类型
         Object
  Number
  Boolean
  String
  Date
  ...

js教程--从入门到精通 第一篇 js的前世今生以及js中基本数据类型和引入方式的更多相关文章

  1. SaltStack入门到精通第一篇:安装SaltStack

    SaltStack入门到精通第一篇:安装SaltStack 作者:纳米龙  发布日期:2014-06-09 17:50:36   实际环境的设定: 系统环境: centos6 或centos5 实验机 ...

  2. Android Studio2.0 教程从入门到精通Windows版 - 入门篇

    http://www.open-open.com/lib/view/open1468121363300.html 本文转自:深度开源(open-open.com)原文标题:Android Studio ...

  3. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...

  4. nginx教程从入门到精通

    [转]nginx教程从入门到精通 nginx教程写了一段时间,无意中发现,nginx相关文章已经达到了近100篇了.觉得很有必要汇总到一起,它是我们运维生存时间的一片心血,他是学习nginx的同学必看 ...

  5. Android Studio2.0 教程从入门到精通Windows版

    系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android Studio2 ...

  6. Promise入门到精通(初级篇)-附代码详细讲解

    Promise入门到精通(初级篇)-附代码详细讲解 ​     Promise,中文翻译为承诺,约定,契约,从字面意思来看,这应该是类似某种协议,规定了什么事件发生的条件和触发方法. ​     Pr ...

  7. 【OpenCV入门指南】第一篇 安装OpenCV

    http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...

  8. Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步

    Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步 一.概述     PV操作是对信号量进行的操作.     进程同步是指在并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消 ...

  9. SaltStack 入门到精通第二篇:Salt-master配置文件详解

    SaltStack 入门到精通第二篇:Salt-master配置文件详解     转自(coocla):http://blog.coocla.org/301.html 原本想要重新翻译salt-mas ...

随机推荐

  1. 团队队列(列和map结合的经典运用)

    Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...

  2. LeetCode Find Mode in Binary Search Tree

    原题链接在这里:https://leetcode.com/problems/find-mode-in-binary-search-tree/#/description 题目: Given a bina ...

  3. 【java规则引擎】模拟rete算法的网络节点以及匹配过程

    转载请注明:http://www.cnblogs.com/shangxiaofei/p/6340655.html 本文只用于理解rete算法,通过一个规则的编译成的网络结构,以及匹配过程去理解rete ...

  4. mysql 多表查询 左联 去重方法

    1.数据库中的两张表: 2.传统左联查询数据结果如下: 3.替换查询语句可得到去重数据结果:

  5. Websphere中的几个常用概念

    什么是单元(Cell)?什么是节点(Node)?Node.Profile 与 Server 之间的关系是什么? 答: 单元: 单元是整个分布式网络中一个或多个节点的逻辑分组.单元是一个配置概念,是管理 ...

  6. 仿百度下拉关键词,和关键词的小demo

    自己做项目时用到的仿百度下拉关键词 代码: $(function(){ var oTxt = document.getElementById('search_text'); oTxt.onkeyup ...

  7. MySQL自带的性能压力测试工具mysqlslap详解

    使用语法如下:# mysqlslap [options] 常用参数 [options] 详细说明: --auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自 ...

  8. demo1 spark streaming 接收 kafka 数据java代码WordCount示例

    1. 首先启动zookeeper windows上的安装见zk 02之 Windows安装和使用zookeeper 启动后见: 2. 启动kafka windows的安装kafka见Windows上搭 ...

  9. AWS + Stunnel + Squid ***

    [需求] 第一,能***. 第二,在企业网络要能突破端口限制. [原理] 利用AWS提供的一年免费EC2服务,搭建一台自己的VPS,在VPS中利用Stunnel与本机建立加密连接,将本地http请求通 ...

  10. RPCServiceClient-调用webservice客户端

    import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.address ...