JavaScript学习(一)基础知识
来源:互联网 发布:网络加速卡原理 编辑:程序博客网 时间:2024/06/05 00:13
输出消息的几种方式
- alert() 在页面弹出一个对话框。
- confirm() 在页面弹出一个对话框, 常配合if判断使用。
- console.log() 将信息输入到控制台,用于js调试。
- prompt() 弹出对话框,用于接收用户输入的信息。
- document.write()在页面输出消息,document.write不仅能输出信息,还能输出标签。
数据类型转换
字符串转数字类型
Number
- 数字类型的字符串,转换之后得到的数字。
- 非数字字符串,转换之后得到是NaN。
- 小数类型的字符串,转换之后得到的是原数字。
parseInt
- 整数数字类型的字符串,转换之后得到的整数数字。
- 数字开头的字符串,转换之后得到的是前边的数字。
- 非数字开头的字符串,转换之后得到的是NaN。
- 小数类型的字符串,转换之后取整。
parseFloat
- 整数数字类型的字符串,转换之后得到的整数数字。
- 数字开头的字符串,转换之后得到的是前边的数字。
- 非数字开头的字符串,转换之后得到的是NaN。
- 小数类型的字符串,转换之后得到的是原数字。
转布尔类型
- 数字和字符串转完之后为true。
- undefined、null、0转完之后为false.
预解析
预解析:js的解析器在页面加载的时候,首先检查页面上的语法错误。把变量声明提升起。
变量声明提升:在预解析的时候,成员变量和函数,被提升到最高位置,方便其他程序访问。
变量声明提升特点:成员变量只提升变量名,不提升变量值。但是,函数是所有内容全部提升。(function直接定义的)
函数范围内照样会出现变量声明提升:使用变量在定义变量之前。
函数价值时,只加载函数名,不加载函数体。
- 变量声明提升在函数中也适用
- 函数的就近原则
函数
回调函数
回调函数:函数作为参数进行传递和使用。
回调函数一般是用于定义一个规则来使用的。
规则的传递只能通过函数实现,通过变量无法达成。所以我们需要传递规则的时候必须使用回调函数。
function fn(demo){ demo();}
参数
参数赋值的时候,简单数据类型传数值。
参数赋值的时候,复杂数据类型传地址(修改的同一片内存地址)。
当你向修改成员变量中的简单数据类型时,不要通过参数传递,要在函数中直接修改。
对象
对象的字面量就是一个{},而里面的属性和方法是以键值对形式表现的。
a对象.b属性 代表a这个对象的b属性的值,并不是b对应的变量值的属性。
a对象[b] 代表的是a这个对象中b这个变量值对应的属性值。
for in循环一般用于遍历json等
内置对象
内置对象:js本身已经帮我们写好的对象,创建之后可直接使用。
内置对象例如:Date,Array,Math,RegExp,Error,String,Number。
伪数组arguments,不是数组类型,可以修改元素,不能修改数组长度。
数组
数组排序,按首字母Unicode排序
//解决方案,按整体大小排序console.log(arr4.sort(function (a,b) { return a-b;}));
数组合并
使用concat方法合并数组。
Join 方法 返回一个字符串
事件
js的加载是和html同步加载的,如果使用元素在定义元素之间,容易报错。
整个页面上所有元素加载完毕在执行js内容。
window.onload可以预防使用标签在定义标签之前。
如悬停事件:鼠标进入到事件源中立即触发事件。
DOM
由结构图中我们可以看到
- 整个文档就是一个文档节点。
- 每一个HMTL标签都是一个元素节点(标签)。
- 标签中的文字则是文字节点。(文本)
- 标签的属性是属性节点。(属性)
操作节点,必须首先找到该元素。有三种方法来做这件事:
通过 id 找到 HTML 元素,document.getElementById(“demo”);
通过标签名找到 HTML 元素,document.getElementsByTagName(“div”);
通过类名找到 HTML 元素,document.getElementsByClassName(“a”);
节点
父节点 ( parentNode )
兄弟节点
- Sibling就是兄弟的意思。
- Next:下一个的意思。
- Previous:前一个的意思。
下一个兄弟节点=节点.nextElementSibling || 节点.nextSibling 下一个兄弟节点=节点.previousElementSibling|| 节点.previousSibling
单个子节点
第一个子节点=父节点.firstElementChild || 父节点.firstChild 第一个子节点=父节点.lastElementChild|| 父节点.lastChild
所有子节点
子节点数组 = 父节点.childNodes; 获取所有节点。 子节点数组 = 父节点.children; 用的最多。 节点自己.parentNode.children[index];随意得到兄弟节点。
DOM节点操作
创建节点
新的标签(节点) = document.createElement(“标签名”);
插入节点(使用节点)
父节点.appendChild(新节点); 父节点的最后插入一个新节点 父节点.insertBefore(新节点,参考节点)在参考节点前插入;
删除节点
父节点.removeChild(子节点);必须制定要删除的子节点
复制节点
新节点=要复制的节点.cloneNode(参数) ; 参数可选复制节点 //用于复制节点, 接受一个布尔值参数, true 表示深复制(复制节点及其所有子节点), false 表示浅复制(复制节点本身,不复制子节点)
节点属性(节点.属性)
获取:getAttribute(名称) 设置:setAttribute(名称, 值) 删除:removeAttribute(名称)
BOM
- 浏览器对象模型
- window对象
- window对象是JavaScript中的顶级对象
- 所有定义在全局作用域中的变量、函数都会变成window对象的属性和方法
- window对象下的属性和方法调用的时候可以省略window
对话框
- alert() 不同浏览器中的外观是不一样的
- confirm() 兼容不好
- prompt() 不推荐使用
窗口
- window.open(url,target,param)
- url 要打开的地址
- target新窗口的位置 _blank _self _parent(父框架)
- param 新窗口的一些设置
- 返回值,新窗口的句柄
- window.close() 关闭窗口
- 新窗口.moveTo(5,5) 新窗口.moveBy()
- 新窗口.resizeTo() window.resizeBy()
定时器
- 循环执行
- var timerId = setInterval(code,interval);
- clearInterval(timerId);
- 定时执行
- var timerId = setTimeout(code,interval);
- clearTimeout(timerId);
location对象
- window.location
- location相当于浏览器地址栏
- 可以将url解析成独立的片段
- location对象的属性
- href
- hash 返回url中#后面的内容,包含#
- host 主机名,包括端口
- hostname 主机名
- pathname url中的路径部分
- protocol 协议 一般是http、https
- search 查询字符串
方法:
- location.assign() 改变浏览器地址栏的地址,并记录到历史中
- 设置location.href 就会调用assign()。一般使用location.href 进行页面之间的跳转
- location.replace() 替换浏览器地址栏的地址,不会记录到历史中
- location.reload() 重新加载
navigator对象
- window.navigator 的一些属性可以获取客户端的一些信息,如:
- userAgent (系统,浏览器)
- platform (浏览器支持的系统,win/mac/linux)
history对象
- 历史记录管理
- 后退
- history.back()
- history.go(-1) 0是刷新
- 前进
- history.forward()
- history.go(1)
正则表达式
正则表达式,为字符串定义规则,为输入内容定义规则,用来记录文本规则的代码。
正则表达式声明
1、通过构造函数定义
var 变量名= new RegExp(/表达式/);
2、通过直接量定义
var 变量名= /表达式/;
test() 方法
正则对象方法,检测测试字符串是否符合该规则,返回true和false,参数(测试字符串) 。
语法:
Boolean = 表达式.test("要验证的内容");
正则内部类
1、预定义类
2、简单类
1. /string/.test(“string”); 必须是完整的,只多不能少
2. /[string]/.test(“string”); 只要包含里面的任何一个就可以
3. 中括号内,前面加个元字符^进行取反,不是括号里面的字符(一部分也不行)。
4. 有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线。
5. 用中括号匹配不同类型的单个字符。如:/[a-m1-5]/
3、正则边界
^ 会匹配行或者字符串的起始位置,^在[]中才表示非。会匹配行或字符串的结尾位置。
^在一起 表示精确匹配。
4、量词
*
重复零次或更多 (>=0)+
重复一次或更多次 (>=1)- ? 重复零次或一次 (0||1)
- {} 重复多少次的意思
- {n} n次 (x=n)
- {n,} 重复n次或更多 (x>=n)
- {n,m} 重复出现的次数比n多但比m少 (n<=x<=m)
- x|y x或者y
- () 提高权限,有限计算
5、匹配模式
正则表达式的匹配模式支持的2个标志:
g:表示全局模式(global),即模式将被应用于所有字符串而非发现一个而停止。
i:表示不区分大小写(ease-insensitive)模式,在确定匹配想时忽略模式与字符串的大小写。
6、案例
1. 匹配电话
/^((13[0-9])|(15[^4,\D])|(18[0-9]))\d{8}$/
- 匹配中文姓名
/^[\u4e00-\u9fa5]{2,4}$/
- 匹配邮箱
/^[\w\-\.]{5,}\@[\w]+\.[\w]{2,4}$/
- JavaScript学习(一)基础知识
- JavaScript(一、基础知识)
- JavaScript 基础知识一
- 【javaScript】基础知识续一
- javaScript基础知识<一>
- Javascript基础知识一
- JavaScript基础知识(一)
- javascript基础知识(一)
- JavaScript基础知识(一)
- javaScript基础知识(一)
- Javascript基础知识(一)
- JavaScript基础知识(一)
- JavaScript基础知识(一)
- Javascript 基础知识一
- JavaScript学习笔记(一)——JS基础知识介绍
- javascript之对象学习笔记(一)--对象基础知识
- JavaScript学习笔记(一)——JS基础知识介绍
- JavaScript学习笔记(一)——JS基础知识介绍
- NEUOJ 1211 MJF wants to work (与区间相关的贪心)
- 关于数值统计的几个算法
- 解决linux用户丢失的问题
- [BZOJ] 3670: [Noi2014]动物园
- Dockerfile详解
- JavaScript学习(一)基础知识
- where group by联合使用
- stream 中的groupingBy 和partitioningBy
- IO流进阶1
- pdf转化成图片格式
- docker-compose实践
- Python学习记录——Python tuple、list、dict
- 蜗龙徒行-Spark学习笔记【五】IDEA中集群运行模式的配置
- 多态的对象模型