object的部分属性和方法 + 逗号操作符 + label语句 + with + switch + 参数 + typeof和instanceof检测类型 -- 大一下第十五周

  • valueOf() 方法可以字符串返回数字。
    在这里插入图片描述

  • Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode包含ASCII

  • visibility 属性,规定元素是否可见
    在这里插入图片描述

  • input的一些事件,和其他元素有点不一样

    • onfocus:当input获取焦点的时候触发
    • onblur:失去焦点时触发(要先触发再失去才会触发这件事件)
    • onchange:当input失去焦点并且它的value值发生变化的时候会触发
    • onselect:当input里面的内容文本被选中之后执行,只要选择了就会触发,不是全部选中
    • oninput:当input里面的value值发生变化就会触发,不失去焦点也会触发
    • onclick:当input的type为button的时候点击会触发

object的一部分属性和方法

  1. constructor,保存着用于创建当前对象的函数
  2. hasOwnProperty(propertyname),用于检查给定的属性是否在当前对象实例中,参数名必须是字符串
  3. isPrototypeOf(object),检查传入对象是否在当前对象的原型中
  4. propertyIsEnumerable(propertyName),检查给定属性是否可以使用for-in进行枚举,参数名必须是字符串
  5. toLocaleString(),返回对象的字符串表示,字符串与执行环境的地区对应
  6. toString(),返回对象的字符串表示
  7. valueOf(),返回对象的字符串,数值或布尔值表示,一般与toString()方法返回的一样

逗号操作符

  1. 声明多个变量
    var a = 1,
        b = 2,
        c = 3;
  1. 用于赋值,结果是最后一个数
    var a = (1, 2);//结果a = 2
    var num = (1, 2, 3, 0);//结果num = 0

label语句

语法:

label : statement

一般用于和continue和break连用

直接看书上的这个例子吧

    var num = 0;
    outermost :
    for(var i = 0 ; i < 10 ; i ++){
    
    
        for(var j = 0 ; j < 10 ; j ++){
    
    
            if (i == 5 && j == 5) {
    
    
                break outermost;
            }
            num ++;
        }
    }

    alert(num);//55

with语句

作用 : 将代码的作用域设置在一个特定的对象中
语法 :
with(expression) statement;

举个栗子

// obj是一个对象
var name1 = obj.name;
var sex1 = obj.sex;
var age1 = obj.age;

with(obj){
    
    
    var name1 = name;
    var sex1 = sex;
    var age1 = age;
}
// 上面这两种方法意思一样

先在局部环境中找,然后在obj对象中找
开发大型应用程序不建议使用with

switch语句

switch里面发生的比较是全等比较,不会发生类型转换

书上的一个例子,第一次见这样用switch

var num = 25;
switch (true) {
    
    
    case num < 0:
        alert('Less than 0');
        break;
    case num >= 0 && num <= 10:
        alert('Between 0 and 10');
        break;
    case num > 10 && num <= 20:
        alert('Between 10 and 20');
        break;
    default : 
        alert('More then 20');
}

最后输出More than 20

参数(原始值和引用值的区别)

原始值的复制是直接复制内容,引用值的复制是复制指针,这个在函数中传参的时候仍然适用(函数传参传引用值会将最开始的值改变)

错误认知:在局部作用域内修改的对象会在全局作用域中反映出来,这说明参数是按引用传递的

看这个例子

        function setName(obj) {
    
    
            obj.name = 'li';
            obj = new Object();
            obj.name = 'wang';
            alert(obj.name);      //wang
        }

        var person = new Object();
        setName(person);
        alert(person.name);       //li

即使在函数的内部修改了参数的值,但原始的引用仍然保持未变。实际上,当在函数内部重写obj时,变量引用的就是一个局部变量了,然后局部变量会在函数执行结束的时候被销毁

感觉就是在函数内部再new一个Object的时候,函数里面的obj就与最开始传入的person没有关系了,但是在重新赋值之前对obj的操作实际上就是在操作person,再赋值之后,obj就变成了局部变量,与最开始传入的person对象没有任何关系了

检测类型

两种方法

typeof

基本数据类型除了null和object检测不出来,其他可以检测

instanceof

语法 :
result = variable instanceof constructor

var a = 55,
    b = 'str',
    c = true,
    d ,
    e = null,
    f = {
    
    
        name : 'li',
        age : 19
    },
    g = [1, 2, 3, 6],
    h = /abc/,
    i = function () {
    
    
        console.log('i');
    };

console.log(typeof(a));//number
console.log(typeof(b));//string
console.log(typeof(c));//boolean
console.log(typeof(d));//undefined
console.log(typeof(e));//object
console.log(typeof(f));//object
console.log(typeof(g));//object
console.log(typeof(h));//object
console.log(typeof(i));//function
console.log('下面是instanceof');
console.log(a instanceof Number);//false
console.log(b instanceof String);//false
console.log(c instanceof Boolean);//false
// console.log(d instanceof undefined);
// console.log(e instanceof null);
// 上面注释掉的这两行会报错,报错原因是instanceof右边的不是object,再具体的目前也不清楚
console.log(e instanceof Object);//false
console.log(f instanceof Object);//true
console.log(g instanceof Array);//true
console.log(h instanceof RegExp);//true
console.log(h instanceof Object);//true
console.log(i instanceof Function);//true

用instanceof检测原始值的时候会始终返回false

所以使用instanceof的前提是对象要是引用值

小记

这周还实现了两个demo,一个是网页换肤,另一个是TODOlist,怎么说呢,感觉这两个demo并没有特别锻炼js,闲暇时间可以随便敲敲
TODOlist要实现一个保存本地,没有实现,有时间再说吧
笔记还有一堆和数组有关系的,等数组看完一次性一发,逗号查过了,完了去查查小括号

猜你喜欢

转载自blog.csdn.net/weixin_50948265/article/details/117913839