(1)replace方法的标志位:字符串的 replace 方法并不会 替换所有匹配的子串——而仅仅替换第一次匹配。
创新互联公司主营红旗网站建设的网络公司,主营网站建设方案,app软件开发公司,红旗h5成都微信小程序搭建,红旗网站营销推广欢迎红旗等地区企业咨询var str = "David is an Arsenal fan, which means David is great";
str.replace("David", "Darren"); // "Darren is an Arsenal fan, which means David is great"
这里可以使用正则表达式,并且需要加上一个全局标志位(/g)来实现:
var str = "David is an Arsenal fan, which means David is great";
str.replace(/David/g, "Darren"); // "Darren is an Arsenal fan, which means Darren is great"
另一个基本的逻辑错误就是在大小写不敏感的校验场合(字母可大写可小写)没有忽略大小写,此时 /i 标志位就很实用:
var str = "David is an Arsenal fan, which means David is great";
str.replace(/david/gi, "Darren"); // "Darren is an Arsenal fan, which means Darren is great"
(2)数组的sort方法功能强大:
简单应用:
[1, 3, 9, 2].sort();
// 返回 [1, 2, 3, 9]
更强大的方法:
[
{ name:"Robin Van PurseStrings", age: 30 },
{ name:"Theo Walcott", age: 24 },
{ name:"Bacary Sagna", age: 28 }
].sort(function(obj1, obj2) {
// 实现增序排列:前者的 age 小于后者 return obj1.age - obj2.age;
});
// Returns: // [ // { name: "Theo Walcott", age: 24 }, // { name: "Bacary Sagna", age: 28 }, // { name: "Robin Van PurseStrings", age: 30 } // ]
不仅可以对简单类型的数组项进行排序,可以通过属性来排序对象。对json数据的排序,可用试下
(3)JavaScript的传对象知识传引用,对数组操作时,要区分创建新对象还是清空数组
var myArray = yourArray = [1, 2, 3];
myArray= []; // `yourArray` 仍然是 [1, 2, 3]
// 正确的方法是保持引用myArray.length = 0;// `yourArray` 和 `myArray`(以及其它所有对这个数组的引用)都变成 [ ] 了
(4)使用push来整合数组:简单的原生方法就可以实现数组合并这样的常见任务
var mergeTo = [4,5,6];
var mergeFrom = [7,8,9];
Array.prototype.push.apply(mergeTo, mergeFrom);
mergeTo;// is: [4, 5, 6, 7, 8, 9]
(5)preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。
event.preventDefault() event 必需。规定阻止哪个事件的默认动作。这个 event 参数来自事件绑定函数.
event.preventDefault()
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意
阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没
有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。
event.stopPropagation()
该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。
event是DOM的事件方法,所以不是单独使用,比如指定DOM
2.各种小问题,各种细节:
(1)java设置时间的时区为格林尼治时间(输出结果与pc的时间相差8小时)
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat matter1=new SimpleDateFormat( " 'time ':yyyy-MM-dd HH:mm:ss z");
matter1.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println("currentDate : "+matter1.format(date));
(2)Arrays.copyOf 可用复制数组(两个参数:第一个是要复制的数组,第二个是新数组的长度)
String value = "aaa ccc bbb ddd";
String[] valueCut= value.split(" ");
String[] valueAll= new String[valueCut.length+1];
valueAll= Arrays.copyOf(valueCut,valueCut.length+1);
System.out.println(valueAll.length);
valueAll[valueCut.length]= value ;
for (int i = 0; i < valueAll.length; i++) {
System.out.println(valueAll[i]);
}
//输出:5
aaa
ccc
bbb
ddd
aaa ccc bbb ddd
(3)实现原比例放缩(适合图片放大缩小处理)
package test;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
public class Testbli {
public static BigDecimal resultWidth ;
public static BigDecimal resultHeight ;
public static void getbili(BigDecimal width ,BigDecimal height , BigDecimal targetWidth ,BigDecimal targetHeight){
MathContext mc= new MathContext(5, RoundingMode.HALF_UP);//四舍五入 BigDecimal scale1 = width.divide(height,mc);
BigDecimal scale2= targetWidth.divide(targetHeight,mc) ;
if (scale1.compareTo(scale2) == 1) {
resultWidth= targetWidth ;
resultHeight= targetWidth.multiply(height).divide(width,mc);
}else {
resultHeight= targetHeight ;
resultWidth= targetHeight.multiply(width).divide(height,mc) ;
}
BigDecimal result1= resultWidth.divide(resultHeight,mc);
System.out.println(resultWidth+"---"+ resultHeight);
System.out.println(result1+"---"+scale1);
}
public static void main(String[] args) {
getbili(new BigDecimal(633), new BigDecimal(983), new BigDecimal(200), new BigDecimal(400));
}
}
//输出:200---310.58
0.64396---0.64395//原比例
(4)得到字符串每个字符的ascll码
String string = "aa-b";
for (int i = 0; i < string.length(); i++) {
int str=string.charAt(i);
System.out.println(str);
}
(5)除法保留任意位小数,且可以取double值和float值
package test;
import java.math.BigDecimal;
import java.text.NumberFormat;
public class Testxiaoshu {
public static void main(String[] args) {
// 除数 BigDecimal bd = new BigDecimal(1);
// 被除数 BigDecimal bd2 = new BigDecimal(3);
// 进行除法运算,保留200位小数,末位使用四舍五入方式,返回结果 BigDecimal result = bd.divide(bd2, 200, BigDecimal.ROUND_HALF_UP);
System.out.println("完整200位小数结果: " + result);
System.out.println("float : " + result.floatValue());
System.out.println("double : " + result.doubleValue());
// 指定想要的小数位长度取值 NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(20);// 大小数位 nf.setMinimumFractionDigits(5); // 最小小数位 String str = nf.format(result);
System.out.println("指定位数取值: " + str);
}
}
//输出:完整200位小数结果: 0.83333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
float : 0.8333333
double : 0.8333333333333334
指定位数取值:0.8333333333