javascript知识体系
ECMAScript
javascript与html结合方式
内部: <script type="text/javaScript">***</script>
外部文件引入: <script type="text/javaScript" src="外部js路径(***.js)" ></script>
javascript数据类型
原始数据类型
null
string
number
boolean
undefined
当初始化一个变量,并且没有为该变量赋值时,系统会默认初始化为undefined
对象的占位符,当我们声明一个变量,并准备在之后为该变量赋值为对象类型时,我们可以先为该变量赋值为null
对象数据类型
javascript这两种数据类型 在内存中的状态 与 java中 一模一样
基本语法
javascript是弱类型语言,声明变量时不用声明变量类型. 全都使用var关键字;
一行可以声明多个变量.并且可以是不同类型(区别java语法);
声明变量时 可以不用var. 如果不用var 那么它是全局变量;(推荐使用var)
变量命名,首字母只能是 字母、下划线、$美元符 三选一;
命名推荐 匈牙利标记法;
每行结束可以不加分号。没有分号会以折行符作为每行的结束(推荐加分号);
注释:支持多行注释和单行注释。 /* */ 、 //
EcmaScript语句
if语句
for语句
while语句
do-while语句
swith语句
注意:语法规则 与 java 一样
javascript运算符
一元运算符
赋值运算符“=”
正数“+”
特殊案例:

+"10" => 10(字符串类型转换成数字类型)

+"abc12" => NaN (NaN无效数字)

NaN特点:参与所有运算都返回false,除了 != ;如:NaN != NaN 返回true
Boolean运算符
!、&&、||
转换规律:(弱类型)
string 向 boolean 转换 : 除了空字符串("") 转换为false , 其他都为true;
number 向 boolean 转换 : 除了 +0 -0 和 NaN 转换为false, 其他都为true;
null 向 boolean 转换 : false;
undefined 向 boolean 转换 : false;
Object 向 boolean 转换 : true;
关系运算符
>、<、>=、<=
两个数字类型进行比较 : 直接比较即可.
一边是其他类型 一边是数字类型 : 将其他类型试图 转换为数字类型. 然后进行比较.
两边都是字符串时 : 从最高为比较 asc码. 如果相同 继续向后比较.
等性运算符
==、!=、===
特殊说明:

undefined == null : true (规定为true)

"NaN" == NaN : false

NaN != NaN : true

true == 1 : true (true转换为 1)

false == 0 : true (false转换为0)

true == 2 : false

"10" == 10 : true

null == 0 : false (null 转换为NaN)

undefined == 0 : false (undefined 转换为NaN)
全等运算符
比较的时候 包括变量的类型也必须相同
ECMA对象分类(两类): 本地对象(native object) 和 主机对象(host object)!!

注意:

以下介绍的都是本地对象 (native object)

主机对象(host object) 包括BOM和DOM
本地对象
Object
Object对象是所有对象的超类. Object中的属性和方法,子类中都有;
toString()
打印一个对象时,默认调用的就是toString方法(跟java一样)
Function
创建方式三种:

1、function fun1(a,b){alert(a+b)}

2、var fun2 = new Function("a","b","alert(a+b)");

3、var fun3 = function(a,b){alert(a+b);};
调用时的特性:调用时 只看函数名称 跟参数没有关系。
函数的内置对象
arguments : 函数运行时的实际参数列表
arguments.length : 获得实际参数个数
arguments[n] : 获取第n个实际参数
内置对象的应用 : 使用arguments完成重载功能!!
return 关键字
方法返回结果
结束当前方法运行
void 运算符:拦截方法返回值。
以下三个对象,是三个原始类型的包装对象
说明:

三个原始类型是伪对象,可以直接使用对应包装对象的方法!

这三个包装对象的构造方法可以用来做类型转换!!
Number
Boolean
String
属性:
length : 返回字符串长度
方法:
不常用的方法(了解):
anchor( ) : 创建 HTML 锚
big( ) : 用大号字体显示字符串
sup( ) : 把字符串显示为上标
sub( ) : 把字符串显示为下标
重要的方法:
charAt( ) : 返回在指定位置的字符
charCodeAt( ) : 返回在指定的位置的字符的 Unicode 编码
indexOf( ) : 检索字符串
lastIndexOf( ) : 从后向前搜索字符串
subString( ) : 提取字符串中两个指定的索引号之间的字符
slice( ) : 提取字符串的片断,并在新的字符串中返回被提取的部分 ( 支持负数 )
与正则结合的方法:
match( ) : 找到一个或多个正则表达式的匹配(了解)
search( ) : 检索与正则表达式相匹配的值(了解)
split( ) : 把字符串分割为字符串数组
replace( ) : 替换与正则表达式匹配的子串
Array
创建方式:
var arr1 = [1,2,3,4]; //初始化元素 var arr2 = [];
var arr2 = new Array(1,2,3,4); //初始化元素
//构造函数只填一个参数并且是数字的话,这个数字是数组的初始化长度

var arr3 = new Array(3);
属性:
length : 获得数组长度
方法:
concat( ) 将两个数组结合成一个数组
join( ) 按照参数的连接符连接元素返会连接后的字符串
pop( ) 弹出并返回最后一个元素
push( ) 向数组末尾添加一个元素并返回数组的最新长度
reverse( ) 将数组元素反转
sort( ) 将数组排序 默认排序规则是按照字符串比较。

如果希望自定义比较规则 需要准备一个比较器(函数)!!
特性
1.数组中的类型,可以任意.不要求是同类型的.
2.数组的长度,使用到哪就有多长.
Date
构造方法:new Date( ) 获取当前时间
方法:
1.new Date() 获取当前时间

2.getFullYear() 获取年份

3.getMonth() 获取月份注意 1月份结果为0

4.getHours() 小时

5.getDate() 日期

6.getMinutes() 分钟

7.getSeconds() 获取秒

8.getDay();获得星期

9.getTime() 获取毫秒值.

10.toLocalString() 获取本地的时间格式字符串.
RegExp
创建方式:
var reg1 = new RegExp("正则表达式","gi");

参数1:正则表达式 、 参数2:匹配模式

g 全局匹配 i 匹配是忽略大小写
var reg2 = /正则表达式/gi;
方法:
test( ) 按照正则的规则匹配某个字符串。 匹配正确返回true 错误返回false
与string结合的4个方法
本地对象(native object)中有一部分特殊的对象: 内建对象 (build in object)

特点: 不需要创建实例,直接使用即可。
Global
方法:
encodeURI( ) 对字符串进行编码 只对中文进行编码
decodeURI( ) 对字符串进行解码
encodeURIComponent( ) 对字符串进行编码 范围比encodeURI要大。

包括一些特定字符 例如 / , : , ? , &
decodeURIComponent( ) 对字符串进行解码
escape( ) 现已过时
unescape( ) 现已过时
isNaN( ) 对某个变量进行判断,是否是NaN。因为NaN == NaN : false;
parseInt( ) 对字符串向数字(整数)转换
parseFloat( ) 对字符串向数字(小数)转换;

以上这两种转换,在转换时是从左到右寻找可以被转换的字符依次转换。
Math
属性:
PI
方法:
random( ) 获得0~1之间的随机数
round( ) 四舍五入取整
min( )/max( ) 返回两个参数中的最小/最大值
pow( 参数1,参数2 ) 获得参数1的参数2次方的值.
BOM(Browser Object Model)
功能上讲: 控制浏览器窗口的. 使用上讲: 与Global 类似.window对象同样不需要创建对象,直接使用即可.
window
一个window对象代表一个html文档。
属性:
self : 自己的所在窗口的window对象
parent : 指向自己父窗口的window对象
top : 指向自己顶层窗口的window对象
frames : 获得所有自己子窗口的window对象数组
opener : 如果一个窗口是使用window.open方法打开的,

那么在新打开的窗口中 要获得打开自己窗口的window对象使用该属性
方法:
alert( ) 提示框
confirm( ) 确认框,返回值是 true / false
prompt( ) 提示输入框,返回值是 用户输入的值
open( ) 打开新窗口

参数1: 新窗口的地址;

参数2(用的比较少): 新窗口的名字;

参数3: 新窗口打开时的一些参数(窗口的宽 高 有没有滚动条, 地址栏,可否调整大小)
close( ) 关闭当前window对象(关闭当前窗口)
setInterval( ) 设置定时器方法(循环执行)

参数1: 要执行的函数;

参数2: 间隔的事件 (毫秒);

返回值是定时器的ID;
clearInterval( ) 停止一个定时器

参数: 要停止的定时器的ID
setTimeout( ) 设置定时器方法(只执行一次)

参数1: 要执行的函数;

参数2: 间隔的事件 (毫秒);

返回值是定时器的ID;
clearTimeout( ) 停止一个定时器.

参数: 要停止的定时器的ID
history
属性:
length : 该窗口访问过的 页面个数
方法:
back( ) 后退
forward( ) 前进
go( ) 跳转

参数接受一个整数;

0代表当前页面;

1代表下一页面;

-1代表上一页面;
location
属性:
href 当前窗口的地址。可以用来做跳转
方法:
reload( ) 重新加载当前页面 !刷新
DOM(Document Object Model)
DOM : Document Object Model (文档对象模型)

整合javascript和html、css,控制html文档行为 ;

DOM就是把页面当中所有内容全部封装成对象 ;

HTML文档中万物皆对象 ;
DOM五类对象
Document(掌握)
Element(掌握)
Attribute(理解)
Text(理解)
Common(理解)
DOM中5类对象,抽象出的父类:Node
自身属性:
nodeName(了解)
nodeValue(了解)
nodeType(了解)
导航属性
firstChild(了解)
lastChild(了解)
parentNode(掌握)
nextSibling(了解)
previousSibling(了解)
childNodes(了解)
Document
获取(文档下的)元素对象
getElementById( )
getElementsByClassName( )
getElementsByTagName( )
getElementsByName( )
Element
获取(该元素下的)元素对象
getElementsByClassName( )
getElementsByTagName( )
事件
javascript是基于对象和事件驱动的脚本语言。

给Element对象附加事件属性 ;

属性的类型是Function类型 ;
事件类别:
onclick : 单击时触发
ondblclick : 双击时触发
onblur : 失去焦点时触发
onfocus : 得到焦点时触发
onchange : 用于表单元素, 当元素被修改时触发
onkeydown : 当键盘按键被按下时
onmousemove : 当鼠标移动时触发
onmousedown : 当鼠标按键按下时触发
onmouseover : 当鼠标指向时触发
onmouseout : 当鼠标移出时触发
onsubmit : 当表单提交时触发
onload : 只给body标签使用.当页面加载完成后 执行
事件详情获得:
我们获得事件详情要找到“侦探”来知道(事件Event对象);

Event对象是在事件发生时被创建, 并传递给我们的事件Function中,所以我们直接使用即可;
Event对象
属性:
keyCode : 按键的ASC码返回值
button : 鼠标按钮(左中右)
clientX : 返回当事件被触发时,鼠标指针的水平坐标。
clientY : 返回当事件被触发时,鼠标指针的垂直坐标。
方法:
preventDefault( ) : 阻止默认关联事件的发生
stopPropergation( ) : 阻止事件的向下传播
页面对象的增删改查
Document对象
createElement( )
Element对象
属性:
innerHTML
方法:
appendChild( ) 追加子节点
removeChild( ) 删除子节点
replaceChild( ) 替换子节点
cloneNode( ) 克隆节点
setAttribute(key,value) 设置属性值
getAttribute(key) 获得属性值
insertBefore() 插入到某元素之前
DHTML(动态网页技术)
整合4门技术 : DOM HTML CSS JavaScript
用通俗的话说: DHTML就是 对我们的之前学的DOM对象进行增强(增加新的属性、获得方法).

阶段02JavaWeb基础day02&03JavaScript的更多相关文章

  1. 阶段02JavaWeb基础day04mysql

    数据库--MySql 数据仓库.就与我们之前学过的纯文本,properties这些技术一样.用来保存数据.并提供对数据进行增删改查的操作.我们以后做项目时,项目中的数据都是保存在数据库中的.//--- ...

  2. 阶段02JavaWeb基础day01html&css

    HTML 基础 概念 全写: HyperText Mark-up Language 译名: 超文本标记语言 超级文本标记语言是一种规范,一种标准, 超文本标记语言它通过标记符号来标记要显示的网页中的各 ...

  3. PHP程序员的技术成长规划 第一阶段:基础阶段

    第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作)目标:能够完成基本的LNMP系统安装,简单配置维护:能够用PHP源码做基本的简单系统的PHP开发:能够在PHP中 ...

  4. 2020年12月-第02阶段-前端基础-CSS Day02

    CSS Day02 复合选择器 后代选择器 并集选择器 1. CSS复合选择器 理解 理解css复合选择器分别的应用场景 为什么要学习css复合选择器 CSS选择器分为 基础选择器 和 复合选择器 , ...

  5. 2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

    HTML5 第二天 一.rotate 2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转 使用步骤: 给元素添加转换属性 transform 属性值为 rotate(角度) 如 transfor ...

  6. Python基础-day02

    写在前面 上课第二天,打卡: 大人不华,君子务实. 一.进制相关 - 进制基础 数据存储在磁盘上或者内存中,都是以0.1形式存在的:即是以 二进制 的形式存在: 为了存储和展示,人们陆续扩展了数据的表 ...

  7. 2020年12月-第01阶段-前端基础-HTML CSS 项目阶段(一)

    品优购项目(一) 目标: 能会引入ico图标 能简单看懂网站优化的三大标签 能使用字体图标 ( 重点 ) 能说出我们css属性书写顺序 1. 品优购项目介绍 项目名称:品优购 项目描述:品优购是一个电 ...

  8. PHP自学,第一阶段,基础学习

    环境搭建OS X系统上 Win7执行OS X虚拟机 在 OS X上安装MAMP执行环境 IDE使用 Netbeans PHP版本号开发 数据库使用mysql 自学资料使用:PHP从入门到精通.pdf ...

  9. C#学习第一阶段——语法基础

    C#是一门面向对象的编程语言.在面向对象的程序设计方法中,程序由各种相互交互的对象组成.相同种类的对象具有相同的属性,或者说是在相同的class 中的.       例如,以矩形为例,它具有高(len ...

随机推荐

  1. 启动一个SpringBoot的maven项目

    ​ 最近拿到了一个maven项目,原先是使用.net开发的,虽然Java和C#的语法相近,但是难免还有一些差别,包括语言特性,IDE的使用方面,都需要一段时间的习惯和适应. ​ 该项目总体上是前后端分 ...

  2. 网络流(dinic算法)

    网络最大流(dinic) 模型 在一张图中,给定一个源点s,给定汇点t,点之间有一些水管,每条水管有一个容量,经过此水管的水流最大不超过容量,问最大能有多少水从s流到t(s有无限多的水). 解法 di ...

  3. python-Word模板填充-docxtpl

    docxtpl 按指定的word模板填充内容 安装 pip install docxtpl 示例 from docxtpl import DocxTemplate data_dic = { 't1': ...

  4. hadoop配置项笔记 - hdfs

    hadoop版本:3.1.1 core-site.xml dfs.namenode.rpc-address 作用:rpc地址.我在使用distcp时显式使用到了. 默认值:port是8020 我的设置 ...

  5. C#中添加对象到ArrayList的代码

    把开发过程中比较好的一些代码段做个备份,下面代码是关于C#中添加对象到ArrayList的代码. ArrayList alcollect = new ArrayList();string str = ...

  6. winform SerialPort串口通信问题

    一.串口通信简介串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串 ...

  7. Oracle 动态sql

    静态SQL是前置编译绑定,动态SQL是后期执行时才编译绑定. 场景: 动态SQL适用于表名及查询字段名未知的情况.在已知查询字段名及表名的情况下,使用动态SQL(字符串拼接方式)会增加硬解析的开销,在 ...

  8. dedecmsV5.7织梦后台更新文章,发布时间不自动更新

    问题:dedecmsV5.7后台修改文章的时候,会更新发布时间,需求是不自动更新时间,还是当时的发布时间 解决: 1.修改后台文件夹/templets/archives_edit.htm,articl ...

  9. every、some数组方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. sentinel详解

    https://segmentfault.com/a/1190000002680804 sentinel端口 port #工作路径 dir "/usr/local/redis-6380&qu ...