JavaScript学习笔记

1.字符串的不可变性理解

举个栗子:
在这里插入图片描述

  • ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。
  • 所谓的不可变性 指的是内存中的不可变性
  • 由于字符串的不可变性,大量拼接字符串非常消耗内存,如下:
 var str = "123";
 for (var i = 0; i < 1000000; i++) {
     str += "1";
 }

在这里插入图片描述

2.其他类型转换成Boolean类型

数据类型转换成true的值转换成false的值
Booleanturefalse
String任何非空字符串“”(空字符串)
Number任何非零数字值(包括无穷大)0和NaN
Object任何对象null

• 流程控制语句可以将其他类型转换成Boolean类型
– 例如:

var message = "hello";
//这在开发中很频繁用到
if(message) {  alert(message + " world")  }

• Boolean()函数
– 例如:
var b = Boolean(“123”); //返回true

3.其他类型转换成字符串

三种转换成字符串类型的方法

  1. toString()
var age = 18;
var ageString = age.toString();
console.log(ageString);  // 结果 "18"

var result = true;
var resultString = result.toString();
console.log(resultString);// 结果 "true"

  1. 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

  1. 使用字符串拼接
var age = 18;
var str = age + "岁";
console.log(str);
var str = "" + 18; //结果是"18"

4.其他类型转换成数值型

三个把值转换成数值类型的函数:Number()、 parseInt()、 parseFloat()

  1. 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
  1. parseInt()专门用于把字符串转换成整数
var num1 = parseInt("12.3abc");  //返回12,如果第一个字符是数字会解析知道遇到非数字结束
var num2 = parseInt("abc123");  //返回NaN,如果第一个字符不是数字或者符号就返回NaN
  1. parseFloat()把字符串转换成浮点数
    – parseFloat()和parseInt非常相似,不同之处在与
    • parseFloat会解析第一个. 遇到第二个.或者非数字结束,如22.34.5//22.34
    • parseFloat如果解析的内容里只有整数,解析成整数
  2. 使用运算符
    • 使用减乘除(加是拼接字符串)都可以
    • 值-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.访问对象属性的两种方式

  1. obj.age = 18;
  2. 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:存在
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值