web技术:JavaScript 基础知识

概览

1995年,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。
JavaScript是按ECMAScript规范实现的一种脚本语言,其他的还有JScript、ActionScript。这三种语言还提供了ECMA规范外的额外功能。

完整的JavaScript实现由3个不同部分组成:

  1. ECMAScript:核心
  2. 文档对象模型(DOM):是HTML和XML的应用程序接口。DOM将把整个页面规划成由节点层级构成的文档。
  3. 浏览器对象模型(BOM)

基础概念:

  • 程序是用Unicode字符集编写的。
  • 区分大小写
  • 产量是弱类型的。
  • 每行结尾的分号可有可无。
  • 标识符(用来对变量和函数进行命名)必须以字母、下划线、美元符开始
  • 不区分整数值和浮点数值。所有数字均用浮点数值表示。
  • 字符串是不可变的。

数据类型

数据类型分为两类:

  • 原始类型(5种:Number、String、Boolean、null、undefined)
  • 对象类型

ECMAScript没有字符类型,可用双引号或单引号声明字符串。
布尔值、数字、字符串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。

Number类型
ECMAScript默认把具有6个或6个以上前导0的浮点数转换成科学计数法。
Number.MAX_VALUE
Number.MIN_VALUE
**NaN(Not a Number)**表示非数。不能用于算术计算;它与自身不相等。函数isNaN

String类型
字符串字面量是由双引号或单引号声明的。而Java则是用双引号声明字符串,用单引号声明字符。由于ECMAScript没有字符类型,所以可使用这两种表示法中的任何一种。

类型转换
JavaScript可以自由地进行数据类型转换。
字符串转换成数字:parseInt()和parseFloat()。
强制类型转换

引用类型
对象是属性的集合,每个属性都由“名/值对”构成。

  • Object类
  • Boolean
  • Number
  • String

变量

变量是无类型的,变量可以被赋予任何类型的值,同样一个变量也可以重新赋予不同类型的值
使用var关键字来声明变量。当声明的变量未初始化时,该变量的默认值是undefined。

// 如果未在声名语句中指定变量初始值,默认初始值为undefined
var i;
var i, j;

变量作用域

  • 函数定义是可以嵌套的。
  • JavaScript使用了函数作用域(function scope):变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。
var scope = "global";
function f() {
    console.log(scope);// 输出“undefined”,而不是“global”
    var scope = "local";// 变量在这里赋值初始化,但变量本身在函数体内任何地方均是有定义的
    console.log(scope);// 输出“local”
}
f()
  • 全局变量在程序中始终都是有定义的;局部变量在声明它的函数体内以及其所嵌套的函数内始终是有定义的。

表达式与运算符

运算符分类:

  • 算术运算符:+、-、*、/、%等
  • 一元操作:++、--
  • 逻辑运算符:!、&&、||
  • 关系运算符
  • 赋值操作:=、复合赋值(+=、-=、*=、/=)
  • 特殊运算符:delete、instanceof、typeof

typeof:检测操作数类型
delete:删除属性
===:判断恒等,无类型转换返回true
!==:判断非恒等

问题 1:==与===的区别?
==表示先转换类型再比较;===先判断类型,非同一类型直接返回 false,类型相同,再判断值。

语句

  • 条件语句:if/else、switch
  • 循环语句:while、do/while、for、for/in
  • 跳转语句,让解释器跳转至程序的其他部分继续执行,如break、return、throw

JavaScript中没有块级作用域,在语句块(花括号括起来的多条语句)中声名的变量并不是语句块私有的。

对象

JavaScript 除了字符串、数字、true、false、null 和 undefined 之外,其他值都是对象。

创建对象的方式:

  • 对象直接量。由若干名/值对组成的映射表,名/值对中间用冒号分隔,之间用逗号分隔,整个映射表用花括号括起来。属性名可以是 JavaScript 标识符也可以是字符串直接量;属性值可以是任意类型的 JavaScript 表达式。
var empty = {}; // 没有任何属性的对象
var p = {id: 3, age: 56}; // 两个属性
var phone = {
    "s color": "red",
    manufacture: {
        name: "xx"
    }
};
  • 通过 new 创建对象。

获取对象中的属性值

object.property
object["property"]

数组

JavaScript 数组是无类型的:数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型。数组的元素甚至也可能是对象或其他数组。

创建数组

// 方式一:使用数组直接量,方括号中将数组元素用逗号隔开即可。
var v = [2, true, 'a'];
// 方式二:调用构造函数 Array() 
var a = new Array(); // 空数组
var a = new Array(10);
var a = new Array(5, 3, 'test');

数组元素增删

var a = [];
a[1] = 'one';
// push() 在数组末尾增加一个或多个元素
a.push('two');
a.push('one', 'two');
delete a[1]; // 删除索引 1 的元素。delete 操作并不影响数组长度。
1 in a; // => false:索引 1 并未在数组中定义

数组方法

 join() // 将数组中所有元素转化为字符串并连接在一起
 reverse()

函数

JavaScript里,函数即对象,程序可以随意操控它们。
JavaScript的函数可以嵌套在其他函数中定义,这样它们就可以访问它们被定义时所处的作用域中的任何变量。

// 函数定义两种写法
var f = function(x) { return x+1; }

function f(x) { 
    return x+1; 
}
function p(o) {
    for(var p in o) {
        console.log(p + ":" + o[p] + "\n");
    }
}
var s = {x:1, y:2};
p(s)

其他

console

  • console.log()
  • console.error()
  • console.warn()
  • console.info()

常用浏览器

  • Chrome
  • Internet Explorer:简称IE。
  • Firefox
  • Safari
  • Opera

参考

  • JavaScript 权威指南 第6版
  • JavaScript 高级程序设计 第3版
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值