Javascript 基础汇总
1 javascript字符串
属性:.length 计算字符串长度
转义字符 \ \n 换行
\r 回车
字符串断行 需要使用反斜杠 \
2 字符串方法
charAt(n) 返回指定索引位置的字符
str.concat(str) 连接两个或多个字符串,返回连接后的字符串
indexOf('str') 返回 指定字符 在字符串中第一次出现的位置 若果没找到 返回-1
lastIndexOf() 返回 指定字符 在字符串中最后一次出现的位置
startsWith() endWith() includes() 返回字符串是否以指定字符串开始、结束、或包含指定字符串
match() str.match(reg) 在指定的字符串内 检索指定的字符值 找到一个或多个正则的匹配 /xxx/g 返回一个数组 ,若没有匹配的内容则返回null
replace('str','str') 替换所匹配的字符串 replace(/microsoft/i,'w3cschool') 匹配Microsoft 并替换w3cschool
search() 查找相匹配的字符串,返回索引位置
slice() 提取字符串的片段,并在新的字符串中返回被提取的部分
split() 把字符串分隔成子字符串数组
substr(m,n) 在字符串中抽取从 m开始位置 的 长度为n个数目的字符 'helloworld'.substr(2,4) //llow
substr(m) 返回字符串中从 m开始位置到结尾的字符串
substring(m,n) 提取字符串中两个指定索引号之间的字符串
toLowerCase() 转小写
toUpperCase() 把字符串转为大写
toString() 返回字符串对象值
trim() 移除字符串首尾空白
3 for/in循环 for (x in person){txt = txt +person[x];}
continue 在for while do-while 等循环体中跳过本次循环,继续执行下次循环。
break 终止循环,执行循环后面的语句,
return 将函数的值返回至主调函数
4 typeof xxx 返回类型 typeof 3.14 //number null //object
constructor()
obj instanceof object 基于原型连判断
5 类型转换
String(num) 将数字转换为字符串 并 返回
(num).toString() 同上
Number('3.14') 将字符串转换为数字3.14
parseFloat()
parseInt()
6 正则表达式
test() 方法 检测字符串中是否有匹配的正则 ,若有返回 true ,否则返回 false
/e/.test("the best things in life are free") true
exec() 方法 检索字符串中匹配的正则表达式,返回一个数组,存放匹配的结果。未找到则返回null
/e/g.exec("the best things in life are free") e
7 JSON字符串转换为javascript对象
json数据一般是从服务器中读取,在网页中显示数据,若在网页中直接设置json字符串,首先创建javascript字符串为json格式的数据:
var text = '{ "employees" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';
然后使用javascript内置函数JSON.parse()将字符串转化为javascript对象:var obj = JSON.parse(text); $.parseJSON('{"name":"code","age":"33"}') 必须为严格json格式
JSON.stringify() 用于将javascript值转换为JSON字符串
eval()将后台写的json格式字符串处理成json对象数组 eval("("+jsonstr+")") 常用
8 javascript:void(0); 是一个死链接,不会发生任何变化,可用作一些情况下的禁止刷新页面
9 事件监听
addEventListener() 向指定元素添加监听事件 .addEventListener('click',function(){}) window.addEventListener("resize",function(){})
removeEventListener() 移除事件的监听 .detachEvent("onclick",function(){}) //ie8 .attachEvent("onclick",function(){})
10 数组
concat() 合并两个数组;合并三个数组 arr1.concat(arr2,arr3);
join() 用数组的元素组成字符串 join("-")
pop() 删除数组的最后一个元素
push() 数组的末尾添加新的元素
reverse() 将一个数组中的元素的顺序反转排序
shift() 删除数组的第一个元素
slice() 从一个数组中选择元素
sort() 数组排序 数字排序 升序 降序sort(function(a,b){return a-b/b-a})
splice() 在数组的第2位置添加一个元素 splice(2,0,'lemon','kiwi') splice(2,3)删除从第二位到第三位的数组
toString() 转换数组到字符串
unshift() 在数组的开头添加新元素
比较不同点
a. slice 会创建一个新数组 slice(3)会截取从3开始到数组最后的部分;slice(2,6)会截取原数组从第二位到第六位的4个数组。
b. splice 删除或添加数组里的任意项 splice(3)删除从3位及之后的数组项;splice(2,5)删除数组中的从2到5的数组项,致使数组length值改变;splice(para1可以添加到的位数,para2删除的项数,val1添加的值,val2...)。
c. splite 根据特定的字符切割字符串并且返回数组 str="a-saaa-sss-eee-www"; str.slite("-"); ['s','aaa','sss',...]
arr.forEach(function(x,index,a){ console.log(x index a)});
arr.map(function(x){return x+10} ) 返回数组,不修改原来的数组
arr.filter(function(x,index){return index%3 ===0 || x>8;)} 筛选出每个数组成数组,不修改原来的数组
arr.every(function(){}) 对每个成员进行判断,有一个返回false 则返回false
arr.some(function(){}) 成员中又一个成员满足条件 则返回true
11 Math算法
round(2.3) 四舍五入 ,不保留小数点 Math.round()
toFixed(n) 四舍五入,保留n 位小数
random() 返回0至1之间的随机数 Math.random()
max() 返回两个数中最大的那个 Math.max()
min() 返回两个数中最小的那个 Math.min()
Math.abs(-2) 返回数的绝对值
Math.ceil() 对数字进行上舍入
Math.floor() 对数字进行下舍入
Math.pow(10,len) len 位 0
12 window对象 方法
window.print() 用于打印当前窗口的内容
window.innerWidth || document.documentElement.clientHeight || document.body.clientHeigtht
window.open() window.close() window.moveTo() window.resize()
screen.availHeight 返回屏幕的高度
history.back() history.forward()
13 弹框
alert() 警告框
confirm() 确认框 点 确认 返回 true ;取消 返回false
prompt('ccc') 提示框 点确认返回输入内容;点取消 返回null
14 document.execCommand() 方法处理html数据时常用语法格式 ,execCommand()可以实现浏览器的很多功能,如保存文件、打开新文件、撤销
document.execCommand('2D-Position','false','true'); sCommand为指令参数 如2D-Position ,交互方式参数如果是true则显示对话窗口,为false则不显示对话窗口;动态参数一般为 可用值或属性值
[全选]document.execCommand("selectAll")
[打开] document.execCommand("open")
[另存为]document.execCommand("saveAs")
[打印] document.execCommand("print")
15 事件处理程序
1.HTML事件处理程序
2.dom 0级事件处理程序 (直接在js里操作dom元素,添加或取消事件)
"btn".onclick=function(){};
"btn".onclick=null;
3.dom2级事件处理程序 (指定或删除事件处理程序)
btn1.addEventListener("click",function(){},false); false指异步
btn1.removeEventListener("click",function(){},false)
4.IE事件处理程序 只接受2个参数,因为IE8只支持事件冒泡
btn1.attachEvent('onclick',function(){})
btn1.detachEvent(‘onclick’,function(){})
兼容个浏览器封装函数
var eventutil = {
addEvent:function(element,type,handle){ if(element.addEventListener){ element.addEventListener(type,handle,false)
}else if(element.attachEvent){
element.attachEvent('on'+type,handle)
}else{element['on'+type]=handle},
}
//调用eventutil.addEvent(btn,click,handle) //handle 指function函数
event事件对象
属性:1. type属性 2.target属性 function(ev){alert(ev.type);alert(ev.target)}
方法:1.stopPropagation()方法阻止事件冒泡;
function(event){alert(xxxx);event.stopPropagation()};
2.preventDefault()方法阻止默认行为;如<a>的跳转行为;
function(event){event.stopPropagation();event.preventDefault();}
严格模式 ‘use strict’ 不能使用with() 不能使用关键字eval argument ;不能定义全局变量禁止使用八进制;
闭包:定义在一个函数内部的函数,可以读取其他函数内部的变量;
优点:1读取函数内部的变量
2让变量的值始终保持在内存中
缺点:1由于闭包会使函数中的变量都被保存在内存中,内存消耗很大,,会造成网页性能问题;
解决方法:在退出函数之前将全局变量全部删除
2闭包会在父函数内部,改变父函数外部的值
http请求:1解析域名,查找本地host文件对应的IP,或向上查找,得到IP,开始构造http请求,服务器解析,返回客户端的浏览器,浏览器先判断状态码,如果是200,则进行渲染,300则去响应头里找location域,构建dom树,
操作DOM
查找:document.querySelector('#foo > div.bar')
读取元素节点:myElement.children
myElement.firstElementChild
myElement.lastElementChild
myElement.previousElementSibling
myElement.nextElementSiblings
读取任何节点(包括文本节点、元素节点):
myElement.childNodes
myElement.firstChild
myElement.lastChild
myElement.previousSibling
myElement.nextSibling
myElement.parentNode
myElement.parentElement
检查节点类型:myElement.firstChild.nodeType === 3 文本节点
修改class 和 属性:myElement.classList.add('foo') 添加class
myElement.classList.remove('bar') 删除
直接修改 元素的HTML属性:会导致浏览器重新渲染,no .getAttribute() .setAttribute() .removeAttribute()
添加样式:myElement.style.marginLeft = '2rem'
拿到计算后的元素属性:window.getComputedStyle(myElement).getPropertyValue('margin-left)
修改DOM : element1.appendChild(element2)
插入DOM :parentElement1.insertBefore(newElement2,siblingElement3) //插入一个节点
克隆DOM : myElement.cloneNode() //若传true,表示深度拷贝 所有子元素
创建新的元素节点:document.createElement('div')
创建文本节点:document.createTextNode('some text')
删除一个元素:myParentElement.removeChild(myElement)
myElement.parentNode.removeChild(myElement)
元素属性:.innerHTML .innerText 缺点:会丢掉之前对元素属性做的修改和时间坚挺,除非服务器端渲染。
cookie:(应用记住密码)
是存储在客户端的字符串属性,可对当前网页的cookie进行读写增删操作;
setCookie(name,value,expdays) expdays设为7,生存期属性,默认情况下,cookie只在浏览器会话期存在,退出浏览器就会丢失,可以用expires设置时间;退出浏览器后就不会丢失并存为客户端浏览器的cookie文件;过了时间后cookie失效,还会自动删除cookie文件.
getCookie(name)
delCookie(name)
Object中修改自身的一个属性 ,获取自身的属性
Javascript 基础汇总的更多相关文章
- (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识
开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...
- 第五模块·WEB开发基础-第2章JavaScript基础
第1章 JavaScript基础 01-JavaScript历史介绍 02-JavaScript的组成 03-JavaScript的引入方式 04-变量的使用 05-基本数据类型(一) 06-基本数据 ...
- 【JavaScript基础】Js的定时器(你想看的原理也在哟)
[JavaScript基础]Js的定时器(你想看的原理也在哟) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 本章是经历 ...
- JavaScript基础
JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...
- 一步步学习javascript基础篇(0):开篇索引
索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...
- 前端之JavaScript基础
前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
- Javascript基础回顾 之(三) 面向对象
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Javascript基础回顾 之(二) 作用域
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
随机推荐
- Win10内置应用恢复初始状态
和Win8/Win8.1相同,Win10也内置了很多默认Windows应用,比如计算器.天气.人脉.Groove音乐.电影和电视.邮件和日历.Edge浏览器等.一般情况下,这些应用不会有太大的问题,但 ...
- Android的存储方式
Android常见的四种存储方式: 1. SharePreference 2. File 3. ContentProvider 4. SQLite 第一种: 保存在应用程序私有的文件夹下---- 只有 ...
- IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1: ...
- js之strict模式
JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量.这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量: i = 10 ...
- 线程安全的Dictionary
线程安全的DictionaryConcurrentDictionary<TKey, TValue> 类
- 梁宇轩 mysql 语句学习一 对表的操作
1.SHOW TABLES; -- 查询库中所有的表 2 .CREATE TABLE test(id INT(20) PRIMARY KEY NOT NULL AUTO_INCRE ...
- CSS3新增的伪类选择器
伪类选择器的作用:对已有选择器做进一步的限制,对已有选择器能匹配的元素做进一步的过滤.CSS 3提供的伪类选择器主要分为以下三类: 结构性伪类选择器 UI元素状态伪类选择器 其他伪类选择器 1.结构性 ...
- 为 Drupal 7 构建一个新主题
主题解释了 Drupal 网站的用户界面 (UI).虽然主题结构并没有明显的变化,但 Drupal 版本 7 配备了一个新的主题实现方法.本文演示了如何创建一个新的 Drupal 7 主题. Drup ...
- 【转】 ASP.NET使用ICallbackEventHandler无刷新验证用户名是否可用
功能说明:当用户在用户名输入框输入字符并焦点离开此输入框时,自动到数据库用户表中验证此用户名是否已被注册,如果已被注册,显示[不可用],反之,显示[可用],期间页面不刷新,读者也可以考虑将提示文字换成 ...
- 图解JavaScript中的原型链
转自:http://www.jianshu.com/p/a81692ad5b5d typeof obj 和 obj instanceof Type 在JavaScript中,我们经常用typeof o ...