前端基础之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 (条件) {
循环执行的代码;
}

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. HTTPS加密原理(转)

    Header HTTP.HTTPS在我们日常开发中是经常会接触到的. 我们也都知道,一般 Android 应用开发,在请求 API 网络接口的时候,很多使用的都是 HTTP 协议:使用浏览器打开网页, ...

  2. poj1062(分区间迪杰斯特拉,内含测试数据,一直wa的同学可以进来看看)

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 54946   Accepted: 16518 Descripti ...

  3. java基础语法学习DayOne

    一.关键字 1.概述:被java语言赋予特定含义的单词 2.特点:组成关键字的字母全部为小写 二.标识符 1.概述:给类.接口.方法.变量起名字时使用的字符序列 2.规则:只能使用英文大小写字母.数字 ...

  4. 福大软工 · BETA 版冲刺前准备之拖鞋旅游队

    拖鞋旅游队BETA 版冲刺前准备 前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10083834.html 本次作业:https://edu.c ...

  5. ios中scrollView基本用法

    设置scrollView内容的尺寸(滚动的范围) self.scrollView.contentSize = CGSizeMake(, ); self.scrollView.contentSize = ...

  6. NOI-1.1-10-字符表示超级玛丽

    10:超级玛丽游戏   总时间限制:  1000ms 内存限制:  65536kB 描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级玛丽中的一个场景. 输入 无. 输出 如样例所示. 样 ...

  7. ZK集群搭建和配置

    1. 克隆三台空虚拟机(含有jdk和lrzsz),修改网络ip,并关闭虚拟机的防火墙 临时关闭:service iptables stop 永久关闭:chkconfig iptables off 2. ...

  8. [LeetCode&Python] Problem 706. Design HashMap

    Design a HashMap without using any built-in hash table libraries. To be specific, your design should ...

  9. sql ''增删改'' 笔记

    结构语言分类 DDL(数据定义语言)  create  drop  alter   创建删除以及修改数据库,表,存储过程,触发器,索引.... DML(数据操作语言)   insert  delete ...

  10. 20155219 2016-2017-2 《Java程序设计》第10周学习总结

    20155219 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计 ...