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. 清除控制台 console

    清除控制台 console.log(1) // console.clear() // CTRL + K // Ctrl + L // process.stdout.write('\033c'); // ...

  2. 解决win10 蓝牙设备只能配对无法连接 ,并且删除设备无效的问题

    系统环境: win10家庭版 dell本 问题描述:蓝牙设备(比如蓝牙键盘,蓝牙音箱)出现无法连接的情况,打算删除已配对的设备,再重新配对连接.但删除设备后重启蓝牙,那些原本被删除的设备又自动配对上, ...

  3. Java — CommonUtil

    一些Java的公用方法: 1:获取当前时间 2:判断当前时间是否在时间date2之前3:比较时间大小4:获取某个时间的前n个小时5:返回某个字符串时间的Calendar对象6:判断两个时间段是否有重叠 ...

  4. vue_全局注册过滤器

    在一个项目中, 某些过滤器全局都有可能用的到, 统一管理并自动化全局注册是很方便的. 代码如下, 后续只需要在src/filters/index.js中添加方法就可以全局使用过滤器了. // src/ ...

  5. Redis缓存之自定义CacheManager

    测试缓存:原理:CacheManager===Cache 缓存组件来实际给缓存中存储数据1,引入redis的starter,容器中保存的是RedisCacheManager2,RedisCacheMa ...

  6. D - Mayor's posters(线段树+离散化)

    题目: The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campai ...

  7. for in 中的index

    自己学艺不精... 数据是个对象,想要里面的key 原来 for (item, index) in items 中的index 就是key

  8. python 报错 TabError: inconsistent use of tabs and spaces in indentation

    写python的时候如果出现如题的错误 TabError: inconsistent use of tabs and spaces in indentation 意为:制表符错误:缩进中制表符和空格使 ...

  9. CSS3新特性介绍

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  10. vue-cli使用swiper插件

    使用的教程https://blog.csdn.net/lbpro0412/article/details/82465067