了解JavaScript核心精髓(二)
1.字符串操作
//声明字符串
var str = "abcd";
var str = new String("abcd") //截取字符串
console.log(str.substring(1)) //bcd
console.log(str.substring(0,3)) //abc //提取字符串
var str2 = str.slice(0, 2);
console.log(str2)//ab 提取字符下标:0、1 //提取某个字符
console.log(str.charAt(1)) //b //查找字符的索引,返回-1即索引不存在。
console.log(str.indexOf("e"))//-1 //清除字符空格
console.log(str.trim()) //替换字符
var result = str.replace("ab","12");
console.log(result)// 12cd //匹配字符
var reg = /[0-9]{1}/i;
console.log("239".match(reg))
2.数值操作
//声明
var i = 1
var i = new Number(1)
//数字转换字符串
var str = i.toString()
var str = new String(i)
//字符串转换数字
var str = '10.11'
console.log(parseInt(str)) //10,只保留整数
var str = '10.11'
console.log(parseFloat(str)) //10.11,保留单精度小数。 console.log(+str) // number类型 10.11
console.log(-str) // number类型 10.11 //判断合法数字。
var num1 = 'aaa'
console.log(isNaN(num1)) //true,不合法数字。
var num2 = '10'
console.log(isNaN(num2)) //false,是合法数字。
var num3 = '10aaa'
console.log(isNaN(num3)) //true,不合法数字。
//判断是否数值类型
console.log(typeof 10 == 'number')
//保留小数位
console.log(i.toFixed(2)) //保留小数位0-20
3.数组操作
//数据声明
var arr = new Array(); //声明一个空数组
var arr = new Array(10); //声明一个10个长度的数组
var arr = new Array("a", "b", "c"); //用值初始化数组,等价于 var arr = ["a", "b", "c"];
var arr = [["a","b","c"][1,2,3]]; //声明一个二(多)维数组 //数组访问
arr[0] = "123"; //赋值
var str = arr[0]; //获取
arr[0][0] = "123"; //多维数组赋值 var arr = [1,3,4,2] //数组排序
console.log(arr.sort()) //[1, 2, 3, 4] //数组反排序
console.log(arr.reverse()) //[4, 3, 2, 1] //数组转换成字符串
var str = arr.join("");
console.log(str) // //字符串转换数组
var str = 'a,b,c,d,e';
var a = str.split(',');
console.log(a) //["a", "b", "c", "d", "e"] var arr1 = ["A","B","C","D"];
var arr2 = ["1","2","3","4"]; //合并数组
var arr = arr1.concat(arr2);
console.log(arr) // ["A","B","C","D","1","2","3","4"] //分割数组 (参数1:起始索引,参数2:切割长度)
var arr3 = arr.splice(1,3);
console.log(arr) // ["A","1","2","3","4"]
console.log(arr3) // ["B","C","D"] //多维数组
var arrMult = [
[1,2,3],
[2,3,4]
] console.log(arrMult[1][2]) //4,arrMult[1]找到第二数组[2,3,4],arrMult[1][2]找到第二数组下标为2的值。
4.日期操作
var currDate = new Date();
console.log(currDate.now()) //获取当前时间毫秒数 等价于 Date().getTime()
console.log(currDate.getFullYear()) //获取完整的年份
console.log(currDate.getDate()) //获取当前日
console.log(currDate.getDay()) //获取当前星期几(值从0开始,0等于星期一)
console.log(currDate.getMonth()+1) //获取当前月份(值从0开始,0等于1月)
console.log(currDate.toLocaleDateString()) //获取当前日期
console.log(currDate.toLocaleTimeString()) //获取当前时间
console.log(currDate.toLocaleString()) //获取当前日期与时间
5.类型转换
// 隐式转换
console.log("test"+1); //'test1'
// 显式转换
console.log(Number('1')) // // 特别注意一下隐式转换
console.log (+"1") //
console.log (1 + ""); //'1'
console.log (1 + true); //
console.log (1 + undefined); //NaN
console.log (1 + null);// /*
* [].valueOf().toString() = '',
* Number('') == 0
*/
console.log([] == 0); //true
/*
* ![] = false,
* false == 0
*/
console.log(![] == 0); //true
/*
* [].valueOf().tostring() = '',
* ![] = false,
* Number('') == Number(false)
* 0==0
*/
console.log([] == ![]); //true
console.log([] == []); //false,因为比较的是栈里面地址。
/*
* {}.valueOf().tostring() = '[object Object]',
* !{} = false,
* Number('[object Object]') == Number(false)
* NaN==!0
*/
console.log({} == !{}); //false
console.log({} == {}); //false,因为比较的是栈里面地址。
var str = 'fdvdfgsdfx9999'
// 无命名分组
var regExp = /9{4}/gi
// 有命名分组
var regExp =/(?<num>9{4})/gi
// 检查字符串是否与正则匹配,返回布尔值
console.log(regExp.test(str))
// 检查字符串是否与正则匹配 ['匹配首个值','匹配首个值的下标','完整字符串','命名分组']
console.log(regExp.exec(str))
7.dom操作
//根据id获取元素
var text = document.getElementById('text')
//根据class名获取元素
//返回html元素数组
var text = document.getElementsByClassName('text')
//根据html标签名获取元素
//返回html元素数组
var div = document.getElementsByTagName('div') //根据css选择器获取元素
//返回符合条件的第一个html元素
var text = document.querySelector('.text')
//返回符合条件的所有的html元素
var div = document.querySelectorAll('div') var paraNode = document.getElementById('test')
//在某父节点添加子元素
var childNode = document.createElement('div')
childNode.id = 'test-child'
paraNode.appendChild(s)
//在某父节点移除子元素
paraNode.removeChild(document.getElementById('test-child')) // 新增属性
paraNode.setAttribute("class", "new-class");
// 移除属性
paraNode.removeAttribute("new-class");
8.编码
// url编码
// A-Z a-z 0-9 - _ . ! ~ * ' ( ) 这些字符不转码
var ecstr = encodeURIComponent('http://www/baidu.com?name=中文&mail=mail@qq.com')
console.log(ecstr)
var dcstr = decodeURIComponent('http%3A%2F%2Fwww%2Fbaidu.com%3Fname%3D%E4%B8%AD%E6%96%87%26mail%3Dmail%40qq.com')
console.log(dcstr) // url编码
// A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # 这些字符不转码
var estr = encodeURI('http://www/baidu.com?name=中文&mail=mail@qq.com')
console.log(estr)
var dstr = decodeURI('http://www/baidu.com?name=%E4%B8%AD%E6%96%87&mail=mail@qq.com ')
console.log(dstr)
PS:escape()方法以废弃。
jq部分
1.jquery的四种初始化
//初始化方法一
//jquery插件开发必须使用这个方法初始化,原因是防止全局污染$这个变量。
(function($){}(jQuery))
//初始化方法二
$(function(){})
//初始化方法三
$(document).ready(function(){});
//初始化方法四
jQuery(function($){});
2.jquery中的ready方法与onload方法区别
ready方法是加载html结构。
onload方法是加载html结构与素材。(图片,音视频等)
3.使用debugger强制加入断点。
另一种断点调试方法。
4.jquery插件开发主要用两个方法
通过$.extend()来扩展jQuery。(直接调用方法名。如:$.XXX())
通过$.fn 向jQuery添加新的方法。(需要绑定dom元素,然后调用。如: $('元素').xxx();)
5.jquery释放$别名
使用noConflict()来释放$
补充
1.不建议使用zeptojs代替jquery(尤其是开发移动web)
原因:(1)不是体积小,效率就高。zeptojs性能比jquery差。
(2)zeptojs兼容性差,zeptojs不兼容jquery插件。
(3)zeptojs长期不更新。
PS:习惯使用jquery就使用jquery,不要以为zeptojs与jquery类似就使用同样的API,zeptojs与jquery还是有本质的区别。
了解JavaScript核心精髓(二)的更多相关文章
- 了解JavaScript核心精髓(三)
1.js判断对象是否存在属性. hasOwnProperty(‘property’) 判断原型属性是否存在. "property" in o; 判断原型属性和原型链属性是否存在 ...
- 了解JavaScript核心精髓(四)
ES6 1.import与require区别 import 是同步导入js模块. require 是异步导入js模块. 2.使用let与const let con1 = 3 //与var作用相似,le ...
- 了解JavaScript核心精髓(一)
ES5 1.声明脚本 <script type="text/javascript"></script> 2.DOM与BOM DOM(Document Obj ...
- 最新的JavaScript核心语言标准——ES6,彻底改变你编写JS代码的方式!【转载+整理】
原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructu ...
- Javascript核心概述 - 深入了解javascript
/* 一.执行上下文:堆栈(底部全局上下文+顶部当前活动上下文) */ /* 二.变量对象: 变量根据执行上下文,找到数据存储位置,这种机制叫变量对象 1. 变量都要var定义,且都不能delete ...
- 一.javascript核心部分:1.词法结构
本文作为个人学习笔记,一直也没有重视javascript的系统学习(javascript是最容易被人忽视的语言),我都是要用的时候百度一下查找下资料开始用,但没有系统的,学习,和整理过javascri ...
- JavaScript语言精髓(1)之语法概要拾遗(转)
JavaScript语言精髓(1)之语法概要拾遗 逻辑运算 JavaScript中支持两种逻辑运算,“逻辑或(||)”和“逻辑与(&&)”,他们的使用方法与基本的布尔运算一致: v ...
- 最新的JavaScript核心语言标准——ES6,彻底改变你编写JS代码的方式!
原文地址 迁移到:http://www.bdata-cap.com/newsinfo/1741515.html 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和f ...
- 周爱民带你深入剖析JavaScript核心原理
作为前端工程师必备技能,JavaScript 的重要性不言而喻.虽然易上手,但却有着诸多复杂微妙的机制,想要真正掌握绝非易事. 专栏面向JavaScript语言的实际应用者与深度爱好者,以讲述Java ...
随机推荐
- 将表格table作为execl导出
有时候的需求是从后台获取数据,然后将数据变成execl,进行导出,下载成execl 解决的方法是 一,比较方便的是 这有个插件 可以直接用 https://www.npmjs.com/package/ ...
- 【Orange Pi Lite2】 ——2《在使用之前的配置》(未完)
[Orange Pi Lite2] --2<在使用之前的配置> 本文只在博客园发布 在开始前你需要准备的材料与软件 filezilla/或者不 声明 : 本教程适合0基础新手,本章将会介绍 ...
- POJ 3734 Blocks (线性递推)
定义ai表示红色和绿色方块中方块数为偶数的颜色有i个,i = 0,1,2. aij表示刷到第j个方块时的方案数,这是一个线性递推关系. 可以构造递推矩阵A,用矩阵快速幂求解. /*********** ...
- wu2198:难得的波段抄底机会
很好的波段抄底机会 个人浅见看,目前染料股跌出的机会明显,养殖股波段机会明显,芯片.半导体.集成电路.北导.软件.国产操作系统等科技股短线机会不错.另外,大盘指数2856/2806区域的波段操作机会不 ...
- python_52_函数返回值2
def test1(x,y): print(x,y) test1(1,2)#位置参数调用,按顺序来,与形参一一对应 test1(y=1,x=2)#输出为2 1,不是1 2.关键字参数调用按关键字,不按 ...
- 完结篇OO总结
目录 前言 一.第四单元两次架构设计 二.架构设计及OO方法理解的演进 三.测试理解与实践的演进 四.课程收获 五.改进建议 前言 持续了17周的OO终于走向了尾声,想想寒假的时候连类都不知道是什么, ...
- Jquery LigerUI
http://www.ligerui.com/index.aspx http://api.ligerui.com/ 分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下 ...
- windows2012服务器搭建mongodb并设置远程访问
因为python脚本需要用到mongodb,而且需要本地查看数据库,所以就在腾讯云的windows服务器上部署了mongodb服务器,因为网上大部分教程是针对linux的自己搜索走了很多坑,这里记录下 ...
- bat 服务启动脚本
当电脑上有多个数据库(特别是Oracle,占用内存大,所以我都是设置为手动启动的,或者想在电脑上运行一下其他UI类软件或玩些游戏的时候也需要暂时关掉,奈何我这渣机(V_V))需要启动或停止的时候,就用 ...
- redhat linux6.5升级openssh
1.下载最新的openssh包 http://www.openssh.com/portable.html#http 2.升级openssh之前要先打开服务器telnet,通过telnet登录服务器,因 ...