文章目录
1.字符串的不可变性理解
举个栗子:
- ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。
- 所谓的不可变性 指的是内存中的不可变性
- 由于字符串的不可变性,大量拼接字符串非常消耗内存,如下:
var str = "123";
for (var i = 0; i < 1000000; i++) {
str += "1";
}
2.其他类型转换成Boolean类型
数据类型 | 转换成true的值 | 转换成false的值 |
---|---|---|
Boolean | ture | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
• 流程控制语句可以将其他类型转换成Boolean类型
– 例如:
var message = "hello";
//这在开发中很频繁用到
if(message) { alert(message + " world") }
• Boolean()函数
– 例如:
var b = Boolean(“123”); //返回true
3.其他类型转换成字符串
三种转换成字符串类型的方法
- toString()
var age = 18;
var ageString = age.toString();
console.log(ageString); // 结果 "18"
var result = true;
var resultString = result.toString();
console.log(resultString);// 结果 "true"
- String()函数
var age = 18;
console.log(String(age)); //结果 "18"
var result = true;
console.log(String(result)); //结果 "true"
console.log(String(undefined)); //结果 "undefined"
• String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。比如:undefined和null
- 使用字符串拼接
var age = 18;
var str = age + "岁";
console.log(str);
var str = "" + 18; //结果是"18"
4.其他类型转换成数值型
三个把值转换成数值类型的函数:Number()、 parseInt()、 parseFloat()
- Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
var num1 = Number(true); //true返回1 false返回0
var num2 = Number(undefined); //返回NaN
var num3 = Number("hello"); //返回NaN
var num4 = Number(""); //如果是空字符串返回0
var num5 = Number(123); //返回123,如果是数字,简单返回
var num6 = Number("123abc"); //NaN
var num7 = Number("abc123"); //NaN
- parseInt()专门用于把字符串转换成整数
var num1 = parseInt("12.3abc"); //返回12,如果第一个字符是数字会解析知道遇到非数字结束
var num2 = parseInt("abc123"); //返回NaN,如果第一个字符不是数字或者符号就返回NaN
- parseFloat()把字符串转换成浮点数
– parseFloat()和parseInt非常相似,不同之处在与
• parseFloat会解析第一个. 遇到第二个.或者非数字结束,如22.34.5//22.34
• parseFloat如果解析的内容里只有整数,解析成整数 - 使用运算符
• 使用减乘除(加是拼接字符串)都可以
• 值-0 不会使原数值发生改变
5.运算符的优先级
---------------------------------------- 优先级从高到底
1.() 优先级最高
2. 一元运算符 ++ – !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
6.三元(目)运算符
//性别在数据库中存储的是1和0,要求输出男或女
var sex = 1;
if(sex === 1) {
console.log("女");
}else{
console.log("男");
}
//简化的方式
var sex = 1;
sex = sex === 1 ? "女":"男";
//表达式1 ? 表达式2 : 表达式3
7.访问对象属性的两种方式
- obj.age = 18;
- obj[“age”] = 18;
for (var i = 0; i < 5; i++) {
obj["n" + i] = i;//这种情况使用obj.xxx就无法实现了
}
8.for循环的两种方式
var arr = [1, 2, 3, 4, 5];
//最基本的一种方式了
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
//for(var 键 in 要遍历的对象){}
for (var key in arr) {
//console.log(key);
//console.log(arr[key]);
}
var obj = {
name: "zs",
age: 18,
sex: 0
};
for (var k in obj) {
//console.log(k);
console.log(obj[k]);
}
9.基本类型做参数的结果
//基本类型做参数
var num = 50;
function f1(num) { //此处的num是形参
num = 60; //方法的参数是局部变量
console.log(num);//60
}
f1(num);//此处的num是实参 会把num的值赋值一份传递给函数内部
console.log(num);//50
9.引用类型做参数的结果
//引用类型做参数
function Person(name, age) {
this.name = name;
this.age = age;
}
function f1(p) {
p.name = "ls";
console.log(p.name);//ls
}
var p1 = new Person("zs", 18);
console.log(p1.name);//zs
f1(p1);
console.log(p1.name);//ls
10.JS获取url参数
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
使用实例
url 实例:
http://www.runoob.com/index.php?id=1&image=awesome.jpg
调用 getQueryVariable(“id”) 返回 1。
调用 getQueryVariable(“image”) 返回 “awesome.jpg”。
11.js 获取当前日期或者前、后N天yyyy-MM-dd的方法
//day=0为当前天,day=7为前7天,day=-7为当前日期的后7天
function getstartdate(day) {
var beginDate;
var curr_time = new Date();
var week_time = new Date(curr_time.getTime() - 1000 * 60 * 60 * 24 * day);
var curyear = week_time.getFullYear();
var curmonth = week_time.getMonth() + 1;
curmonth = curmonth > 9 ? curmonth.toString() : '0' + curmonth.toString();
var curday = week_time.getDate();
curday = curday > 9 ? curday.toString() : '0' + curday.toString();
beginDate = curyear + "-" + curmonth + "-" + curday;
return beginDate
}
12.设置密码选择可见和不可见
function showPsw(){
var type = $("#password").attr("type");
if(type == "text"){
$("#psw").css("backgroundImage","url('/hiddenPsw.png)")
$("#password").attr("type","password");
}else if(type == "password"){
$("#psw").css("backgroundImage","url('/lookPsw'.png)")
$("#password").attr("type","text");
}
}
13.怎么在html中引入公共的html页面
<body>
<div id="page"></div>
<script>
$("#page").load("page.html");
</script>
</body>
注意:引入的公共html页面必须去掉所有的标签
14.javascript lastIndexOf 返回指定元素在数组中的最后一个的索引
var array = [2, 5, 9, 2];
var index = array.lastIndexOf(2);
// index is 3
index = array.lastIndexOf(7);
// index is -1
15.判断输入的字符串是否含有空格
1使用正则:
var reg =/\s/;
alert(reg.test("上打开附件或 说贷du款均zhi符合dao"));
True:存在 Flase:不存在
2.
var str = "上打开附件或 说贷款均符合";
alert(str.indexOf(" ")==-1);
True:不存在 False:存在