day 50 Java Script 学习

前端基础之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标签内写代码

<script>
// 在这里写你的JS代码
</script>

引入额外的JS文件

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

JavaScript语言规范

注释(注释是代码之母)

// 这是单行注释

/*
这是
多行注释
*/

结束符

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

JavaScript语言基础

变量声明

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

注意:

变量名是区分大小写的。

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

JavaScript数据类型

JavaScript拥有动态类型

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

数字类型

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

var a = 12.34;
var b = 20;
var c = 123e5; // 12300000
var d = 123e-5; // 0.00123

常用方法:

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

字符串

var a = "Hello"
var b = "world;
var c = a + b;
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都是小写。

var a = true;

 

数组

类似于Python中的列表。

var a = [123, "ABC"];
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 码来比较排序的

遍历数组中的元素:

var a = [10, 20, 30, 40];

for (var i=0;i<a.length;i++)
{console.log(a[i]);} //这样可以打印 a 中的全部元素

对象

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

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

遍历对象中的内容:

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

null和undefined

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

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

类型查询

typeof "abc"  // "string"
typeof null // "object"
typeof true // "boolean"
typeof 123 // "number"

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

运算符

算数运算符

+ - * / % ++ --

比较运算符

> >= < <= != == === !==

注意:

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

逻辑运算符 

&&     || !   与  

赋值运算符

= += -= *= /=

流程控制

if-else

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

if-else if-else

var a = 10;
if (a > 5){
console.log("a > 5");
}else if (a < 5) {
console.log("a < 5");
}else {
console.log("a = 5");
}

switch

var day=5;
switch(day){case 0:console.log('sunday');break; case 2:console.log('bbb');break; case 3:console.log('www');break; case 5:console.log('sun');break; default: console.log('接着睡吧');break;} #打印结果是sun

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

var day=3;
switch(day){case 0:console.log('sunday');break; case 2:console.log('bbb');break; case 3:console.log('www'); case 5:console.log('sun'); default: console.log('接着睡吧');} #打印结果是
www
sun
接着睡吧 从day=3的位置开始打印返回的结果

for

for (var i=0;i<10;i++) {

  console.log(i);

}
#注意括号里的写法 括号内的最后一个条件不加; 分号,其他的要加上 会打印出从 0 到9 的所有数字 类似于Python中的 for i in range(10): print(i)

while

var i = 0;
while (i < 10) {
console.log(i);
i++;
}

三元运算

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

 流程语句的总结

条件判断和流程控制

        if判断
if (条件) {
条件成立要做的事儿;
} else {
条件不成立要做的事儿;
} if (条件) {
条件成立要做的事儿;
} else if (条件2) {
条件2成立要做的事儿;
} else {
条件都不成立要做的事儿;
} switch
switch (v) {
case 值1: 执行的代码;break;
case 值2: 执行的代码;break;
case 值3: 执行的代码;break;
default: 上面条件都不成立执行的代码;
} 注意:
break; for循环 for (var i=0;i<长度;i++) {
循环执行的代码;
} for (var i in obj) {
console.log(i);
} while循环 while (条件) {
循环执行的代码;
}
上一篇:ARM体系的7种工作模式


下一篇:备份恢复IIS的设置