前端基础之JavaScript

 

JavaScript概述

JavaScript的历史

  • 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言)
  • Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript
  • 微软随后模仿在其IE3.0的产品中搭载了一个JavaScript的克隆版叫Jscript.
  • 为了统一三家,ECMA(欧洲计算机制造协会)定义了ECMA-262规范.国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。EcmaScript是规范.

ECMAScript

尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

  • 核心(ECMAScript)
  • 文档对象模型(DOM) Document object model (整合js,css,html)
  • 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
  • Javascript 在开发中绝大多数情况是基于对象的.也是面向对象的.

简单地说,ECMAScript 描述了以下内容:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 运算符
  • 对象 (封装 继承 多态) 基于对象的语言.使用对象.

JavaScript引入方式

Script标签内写代码

  1. <script>
  2. // 在这里写你的JS代码
  3. </script>

引入额外的JS文件

  1. <script src="myscript.js"></script>

JavaScript语言规范

注释(注释是代码之母)

  1. // 这是单行注释
  2.  
  3. /*
  4. 这是
    多行注释
  5. */
  1.  

结束符

JavaScript中的语句要以分号(;)为结束符。

JavaScript语言基础

变量声明

  1. JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
  2. 声明变量使用 var 变量名; 的格式来进行声明
  1. var name = "Alex";
  2. var age = 18;

注意:

变量名是区分大小写的。

推荐使用驼峰式命名规则。

JavaScript数据类型

JavaScript拥有动态类型

  1. var x; // 此时x是undefined
  2. var x = 1; // 此时x是数字
  3. var x = "Alex" // 此时x是字符串

数字类型

JavaScript不区分整型和浮点型,就只有一种数字类型。

  1. var a = 12.34;
  2. var b = 20;
  3. var c = 123e5; // 12300000
  4. var d = 123e-5; // 0.00123

常用方法:

  1. parseInt("123") // 返回123 parse(解析)
  2. parseInt("ABC") // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
  3. parseFloat("123.456") // 返回123.456

字符串

  1. var a = "Hello"
  2. var b = "world;
  3. var c = a + b;
  4. console.log(c); // 得到Helloworld

常用方法:

方法 说明
obj.length 返回长度
obj.trim() 移除空白   trim修剪
obj.trimLeft() 移除左边的空白
obj.trimRight() 移除右边的空白
obj.charAt(n) 返回第n个字符
obj.concat(value, ...) 拼接  合并组合
obj.indexOf(substring, start) 子序列位置
obj.substring(from, to) 根据索引获取子序列
obj.slice(start, end) 切片
obj.toLowerCase() 小写
obj.toUpperCase() 大写
obj.split(delimiter, limit) 分割(跟Python一样)

拼接字符串一般使用“+”

布尔类型

区别于Python,true和false都是小写。

  1. var a = true;

 

数组

类似于Python中的列表。

  1. var a = [123, "ABC"];
  2. console.log(a[1]); // 输出"ABC"

常用方法:

方法 说明
obj.length 数组的大小
obj.push(ele) 尾部追加元素
obj.pop() 获取尾部的元素
obj.unshift(ele) 头部插入元素
obj.shift() 头部移除元素
obj.slice() 切片
obj.reverse() 反转
obj.join(seq) 将数组元素连接成字符串
obj.concat(val, ...) 连接数组
obj.sort() 排序

obj.sort()是有毒的,是按照ascii 码来比较排序的

遍历数组中的元素:

  1. var a = [10, 20, 30, 40];
  2.  
  3. for (var i=0;i<a.length;i++)
  4. {console.log(a[i]);}
  5.  
  6. //这样可以打印 a 中的全部元素

对象

类似于(某方面类似)Python中的字典数据类型

  1. var a = {"name": "Alex", "age": 18};
  2. console.log(a.name);
  3. console.log(a["age"]);

遍历对象中的内容:

  1. var a = {"name": "Alex", "age": 18};
  2. for (var i in a){
  3. console.log(i, a[i]);
  4. }

null和undefined

  • undefined表示的是当声明的变量未初始化(赋值)时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
  • null表示值不存在

undefined表示声明了变量,但是还没有赋值。null声明了变量并且变量是空值。

类型查询

  1. typeof "abc" // "string"
  2. typeof null // "object"
  3. typeof true // "boolean"
  4. typeof 123 // "number"

typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。

运算符

算数运算符

  1. + - * / % ++ --

比较运算符

  1. > >= < <= != == === !==

注意:

  1. //这个比较的是值
    1 == 1 // true
    //这个比较的是值 和 类型
  2. 1 === "1" // false 这个最长用,在判断条件是否符合规定时

逻辑运算符 

  1. && || !

赋值运算符

  1. = += -= *= /=

流程控制

if-else

  1. #一定要注意 ; 号的用的位置
    var a = 10;
  2. if (a > 5){
  3. console.log("yes");
  4. }else {
  5. console.log("no");
  6. }

if-else if-else

  1. var a = 10;
  2. if (a > 5){
  3. console.log("a > 5");
  4. }else if (a < 5) {
  5. console.log("a < 5");
  6. }else {
  7. console.log("a = 5");
  8. }

switch

  1. var day=5;
  2. switch(day){case 0:console.log('sunday');break;
  3.  
  4. case 2:console.log('bbb');break;
  5.  
  6. case 3:console.log('www');break;
  7.  
  8. case 5:console.log('sun');break;
  9.  
  10. default: console.log('接着睡吧');break;}
  11.  
  12. #打印结果是sun

当摸个补位删除break 时;会有这样的效果

  1. var day=3;
  2. switch(day){case 0:console.log('sunday');break;
  3.  
  4. case 2:console.log('bbb');break;
  5.  
  6. case 3:console.log('www');
  7.  
  8. case 5:console.log('sun');
  9.  
  10. default: console.log('接着睡吧');}
  11.  
  12. #打印结果是
  13. www
  14. sun
  15. 接着睡吧
  16.  
  17. day=3的位置开始打印返回的结果

for

  1. for (var i=0;i<10;i++) {
  2.  
  3. console.log(i);
  4.  
  5. }
  6. #注意括号里的写法 括号内的最后一个条件不加; 分号,其他的要加上 会打印出从 0 到9 的所有数字 类似于Python中的 for i in range(10): print(i)

while

  1. var i = 0;
  2. while (i < 10) {
  3. console.log(i);
  4. i++;
  5. }

三元运算

  1. var a = 1;
  2. var b = 2;
  3. var c = a > b ? a : b

 流程语句的总结

  1. 条件判断和流程控制
  2.  
  3. if判断
  4. if (条件) {
  5. 条件成立要做的事儿;
  6. } else {
  7. 条件不成立要做的事儿;
  8. }
  9.  
  10. if (条件) {
  11. 条件成立要做的事儿;
  12. } else if (条件2) {
  13. 条件2成立要做的事儿;
  14. } else {
  15. 条件都不成立要做的事儿;
  16. }
  17.  
  18. switch
  19. switch (v) {
  20. case 1: 执行的代码;break;
  21. case 2: 执行的代码;break;
  22. case 3: 执行的代码;break;
  23. default: 上面条件都不成立执行的代码;
  24. }
  25.  
  26. 注意:
  27. break;
  28.  
  29. for循环
  30.  
  31. for (var i=0;i<长度;i++) {
  32. 循环执行的代码;
  33. }
  34.  
  35. for (var i in obj) {
  36. console.log(i);
  37. }
  38.  
  39. while循环
  40.  
  41. while (条件) {
  42. 循环执行的代码;
  43. }

day 50 Java Script 学习的更多相关文章

  1. Java Script 学习笔记 -- 基础知识

    Java script 概述 java Script 的简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...

  2. Java Script 学习笔记

    JS编程习惯类: 1. 命名 著名的变量命名规则 只是因为变量名的语法正确,并不意味着就该使用它们.变量还应遵守以下某条著名的命名规则: Camel 标记法 首字母是小写的,接下来的字母都以大写字符开 ...

  3. java script 学习

    用JavaScript输出文本 <p>我的第一个段落.</p> <script> document.write(Date()); </script> & ...

  4. Java Script 学习笔记 -- Ajax

    AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javas ...

  5. Java Script 学习笔记 -- jQuery

    一 jquery简介 1 jquery是什么  jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototyp ...

  6. Java Script 学习日志 Div

    2019年7月7日 学习网站: http://www.w3school.com.cn/js/js_examples.asp 1.输出 1. 1首先就是输出看 <script> docume ...

  7. Java Script 学习笔记(一)

    示例如下: JavaScript-警告(alert 消息对话框) 我们在访问网站的时候,有时会突然弹出一个小窗口,上面写着一段提示信息文字.如果你不点击“确定”,就不能对网页做任何操作,这个小窗口就是 ...

  8. Java Script 学习笔记 (二) Casper JS

    1. click() VS mouse.click() 在写自动化脚本要勾选一个复选框时,用casper.mouse.click() 无法选上这个checkbox, 需要用到casper.click( ...

  9. Java Script 学习笔记 (一) 基础

    1. 设置变量 const: 赋常量,不可更改. let :设置可更改变量. ES6 中推荐使用let 而不是var. Let 和var的区别 : let 将变量的作用域限定在当前{}中, var 定 ...

随机推荐

  1. RabbitMQ Dead Lettering(死信)

    死信,顾名思义,就是死掉的消息,死掉的消息是会被一般的队列丢弃的.如果这些消息很重要,而我们又需要,怎么办?凡事都有一个退路,现在就有一种方法可将这些死信消息存下来,那就是DLX(Dead Lette ...

  2. 图的关键路径,AOE,完整实现,C++描述

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  3. Excel 数据读入到DataSet

    using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.I ...

  4. DevExpress WPF v18.2新版亮点(六)

    买 DevExpress Universal Subscription  免费赠 万元汉化资源包1套! 限量15套!先到先得,送完即止!立即抢购>> 行业领先的.NET界面控件2018年第 ...

  5. C++四种类型之间的转换

    C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a. C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用. const_cas ...

  6. merge into用法小结

    CREATE OR REPLACE PROCEDURE PRO_ZXC(O_NO OUT NUMBER,O_NOTE OUT NUMBER)ASBEGIN O_NO:=1; MERGE INTO QQ ...

  7. centos6.6安装hadoop-2.5.0(六、各种node功能)

    一.hadoop的YARN框架 hadoop的YARN职能就是将资源调度和任务调度分开 ResourceManager全局管理所有应用程序计算资源的分配,每一个job的ApplicationMaste ...

  8. python day05--字典

    一.字典结构 {key:valu} 注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据. dic = {123: 456, True: 999, "id&q ...

  9. hadoop day 2

    1.hdfs shell相关命令 #hadoop fs -ls / 查看HDFS根目录 #hadoop fs -mkdir /test 在根目录创建一个目录test #hadoop fs -mkdir ...

  10. MySQL中的修改表操作

    一.增加表的列 语法:alter table 表名 add(           增加列定义          ); 实例: #增加列 alter table text add( text_num ) ...