======================================= 正则表达式=====================================================
测试exp:http://tools.jb51.net/regex/javascript
在线生成exp:http://tools.jb51.net/regex/create_reg
. 表示任意字符
=======================================字符转数字=====================================================
1. 转换函数
parseInt("10", 2); // returns 2
2、强制类型转换
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
Number( "5.5 ") 5.5
Number( "56 ") 56
=======================================字符转数组======================================================
var arr=str.split(''); // 转为字符串数组,来遍历 ['1','4','r']
=======================================是否含有某个值===================================================
var num=['1','2','3','4','5','6','7','8','9'];
for(var i=0;i<arr.length;i++){ // 遍历数组
if(num.includes(arr[i])){ // 是否包含某个数组
}
}
let slice=Array.prototype.slice; // slice赋值 数组里的slice的方法
let dom=slice.call(document.querySelectorAll(selector)); // dom改为数组
1:数据访问篇,以angular js 中http访问数据为例
// 电池信息一览表
getBatteryInfo();
function getBatteryInfo() {
var url= '../heu_assets/data/battery/batteryInfo.json';
var params={
findKey: "",
findVal: "",
}
var callback=function (ret) {
// ret=data
vm.batteryInfo = ret.body.datas;
}
callAPI(url,params,1,callback);
}
// 公共api
function callAPI(url,params,type,callback) {
var ret;
$http({
method: 'GET',
url: url,
params: params
}).then(function successCallback(response) {
if(response.data.retcode===1) {
switch (type){
case 1: // 查询
case 2://修改
case 3://删除
ret=response.data.data;
break;
default:
ret=response.data.data;
}
callback(ret);
}
// 请求成功执行代码
}, function errorCallback(response) {
// 请求失败执行代码
});
return ret;
}
2: 判断
0 对应布尔表达式是 false
非0 对应布尔表达式是true
(1) if (status ){} if ( !status ) { } 多个变量 2个分支
(2) 三目运算 语法:条件 ? 结果1 : 结果2; status=status ?1:0 多个变量 2个分支
(3)switch 一个变量的不同取值。
3: 函数
1 函数说明
getBatteryInfo();
function getBatteryInfo() {
}
2 函数表达式
var vm = this;
vm.returnBattery = function () {
vm.showBattery = true;
vm.showOverall = false;
vm.showSingle = false;
}
3:构造函数
4: for in 循环
当检测某个对象是否拥有某个属性时,hasOwnProperty 是唯一可以完成这一任务的方法
,在 for in 循环时,建议增加 hasOwnProperty 进行判断,可以有效避免扩展本地原型而引起的错误。
js中存在2种访问对象的方式
(1)对象名.属性名 对象名.方法名()
(2)对象名["属性名"] 对象名["方法名"]()
1 var obj = {
2 name : "小明",
3 age : 18,
4 say : function(){
5 console.log("我是"+this.name+"我"+this.age+"岁");
6 }
7 };
8 console.log(obj.name);
9 console.log(obj["name"]);
10 obj.say();
11 obj["say"]();
对于已经存在的属性和方法,用.和用[]得到的结果一致、
对于不存在(未定义)的属性和方法,用.会创建这个新的属性或方法,而用[]的方式访问不会创建新的属性或方法
var obj = {
'name': '彭湖湾',
'job': '学生'
}
for(item in obj){
if(obj.hasOwnProperty(item)){
console.log("++++++++++",item); // name job
console.log("++++++++++",obj[item]); "澎湖湾" '学生'
console.log("++++++++++",obj.item); "undefined" 'undefined' // .方法是声明对象的属性,,但是未初始化
copyObj[item]=obj[item]
}
}
5: indexOf()
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果要检索的字符串值没有出现,则该方法返回 -1
6:数组过滤
var arr=[45,2,3,4];
filterArr(arr);
function filterArr(arr) {
var _arr=arr.filter(function (item) {
return item>=9;
});
console.log("++++++",_arr);
return _arr;
}
7:数组串化
http服务传参数时,没有参数类型,只是文本。什么数组类型都是js的,所有要将一个数值作为http服务的参数时,要将数组类型转化为字符串类型,值与值之间用逗号隔开。areaId.toString();方法,将数组转化成用逗号隔开的串
不合格的:
var queryParams = {
areaId: vm.willDeleteDriverIds,
};
console.log(queryParams);
合格的:
var queryParams = {
areaId: vm.willDeleteDriverIds.toString(),
};
console.log(queryParams);
标准的
一个字段多个值时:
补充:数组串化的方法;
9:动态加载js脚本:
https://blog.youkuaiyun.com/liupeifeng3514/article/details/79006879
10:字符串替换 stringObject.replace(regexp/substr,replacement)
在js中字符串全部替换可以用以下方法:str.replace(/需要替换的字符串/g,"新字符串")
比如: "yyyy-MM-dd-hh-mm-ss".replace(/-/g,"/") // 把这个串里的-全部替换为/
结果如下: "yyyy/MM/dd/hh/mm/ss"
补充:
var str2 = str.replace(/\s/g, '%20'); //js匹配空格\s