ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第三周练习题

2022-08-17 20:01:32  阅读:108  来源: 互联网

标签:练习题 function arr console log 第三周 var return


一,代码识别,写出结果,并分析原因

    1. (function(){
      return typeof arguments; 
      })();
  1. console.log( typeof g())

    报错 因为g只在函数体内才可见 命名的函数表达式

    1. (function(x){
  2. delete x;

    return x;

    })(1);

    1 因为x只能删除对象的属性

    1. var y = 1, x = y = typeof x; 
      log(x);
  3. Undefined 从右往左运算,一开始x没有声明,那么就是undefined

    1. (function f(f){ return typeof f(); })(function(){ return 1; });
  4. 自执行返回的是f(),所有指的是参数 所有结果是 number

    1. var foo = {
      bar: function() { return this.baz; }, 
      baz: 1 
      }; 
      (function(){ 
      return typeof arguments[0]; 
      })(foo.bar);
  5. function

    首先,这个foo对象定义有问题。作为方法,this指向的是调用者自身(这里是foo.bar),但是函数不存在baz这个属性,所以方法结果是undefined。

    另一方面,和第四题类似,注意到arguments0就是一个函数自执行的结果,它已经从foo对象中剥离开来了,this指向arguments[0]

    1. var foo = {
      bar: function(){ return this.baz; }, 
      baz: 1 

      typeof (f = foo.bar)();//问最后一行的执行结果
  6. undefined

    1. var f = (function f(){ return “1”; }, function g(){ return 2; })();
      typeof f; //问最后一行的执行结果
  7. number

    1. var x = 1;
      if (function f(){}) { 
      x += typeof f; 
      } //x值为多少
  8. 1+undefined  

    注意:函数声明不允许写在if判断条件中 如果真的写了 全部返回真 因为只有0,空字符串,undefined,null,false才判断为假

    1. var x = [typeof x, typeof y][1];
      typeof typeof x; //问最后一行的执行结果 string
  9. 遇到判断typeof判断typeof,肯定返回字符串

    1. (function(foo){
      return typeof foo.bar; 
      })({ foo: { bar: 1 } }); 
  10. Undefined

    参数是一个对象 这个对象只有一个属性foo 所以结果是undefined

    1. (function f(){
      function f(){ return 1; } 
      return f(); 
      function f(){ return 2; } 
      })(); 
  11. 2 首先要明确,函数声明是预解析的 在return之前 两句声明都被解析了所以返回2

    1. function f(){ return f; } new f() instanceof f;//问这一行的值
  12. Instanceof返回的是一个布尔值 看他是不是构造函数的实例 false

    1. with (function(x, undefined){}) length; //问length的值为多少
      //with就是一个读写器,题意是取出函数的length属性
  13. 2 这里是函数的长度 实际上是函数形参的长度

    1. log(a);
  14. var a=1;

    function a(){}

    a=2;//a的结果是什么

    1

    1. setTimeout(() => { console.log(1)},0);console.log(2)
  15. 2,1

    1. ['1','2','3'].map(parseInt)结果是什么
  16. https://www.cnblogs.com/afeihome/p/7245963.html

    [1,NaN,NaN]

    1. var arr = [3,4,5];var res = arr.unshift(1,2);console.log(res)
  17. 5

    1. var one;
  18. var two = null;

    console.log(one == two,one === two);

    true false

    One的变量的值是undefined,two的值是null,undefined==null,但undefined的type是undefined,但null的值是object,所以类型不相等,注意在js中 ,值有类型,变量没有类型。

    1. function fn(){
  19. var a = b = 1;

    //等于var a = b ,b = 1

     //不加var ,b就是全局变量了(window.b=1),可以直接访问

     //var a是局部变量,在fn里面,外面访问不到

    }

    fn();

    console.log(b);//结果为//window全局作用域下找到window.b = 1

    console.log(a);//结果为//a在fn里面的作用域,外面访问不了,报错

    1 报

二,代码书写

  1. 不用for循环生成0-100的数组
    // 第一种方法
        // Array.apply(null,Array(100))
        var arr = Array(100).fill(1).map((v,k)=>k+1)
        console.log(arr);
    
        // Array.from()方法
        var filled = Array.from(Array(100),(v,k)=> k+1);
        console.log(filled);
    
        //第二种方法
        var filled = new Array(100);
        filled.map(function(value,index){
            return index+1
        });
        console.log(filled);
    
        //第三种方法 
        var arr = Object.keys(Array.apply(null,{
            length:100
        })).map(function(item){
            return +item;
        })
        console.log(arr);
    
        // 第四种方法 Array.keys()
        var arr = new Array(100).keys();
        console.log(Array.from(arr));
    
        // 第五种方法 Object.keys()与Array.from()
        var arr = Object.keys(Array.from({
            length:100
        })).map(function(item){
            return +item
        });
        console.log(arr);
    
        // 第六种 使用扩展运算符
        var arr = [...Array(100).keys()];
        console.log(arr);
    
        // 或者改写成
        var arr = [...Array.from({
            length:100
        }).keys()];
        console.log(arr);
    
        // String()方法
        var arr = Object.keys(String(Array(101)));
        console.log(arr);
  2. let arr1=[1,2,3,4,5];let arr2=[4,5,6,7,8]; 找出俩个数组的交集
    <script>
        let arr1=[1,2,3,4,5,6]
        let arr2=[4,5,6,7,8,9]
        // 并集 数组去重 
        let RemoveSame=[...new Set([...arr1,...arr2])]
        console.log(RemoveSame) //[1, 2, 3, 4, 5, 6, 7, 8, 9]
    
        //数组交集,或得两个数组重复的元素
        let SamePart=arr1.filter(item=>arr2.includes(item))
        console.log(SamePart) //[4, 5, 6]
    
        //差集=并集-交集  去除两个数组相同的元素
        let Difference=RemoveSame.filter(item=>!SamePart.includes(item))
        console.log(Difference) //[1, 2, 3, 7, 8, 9]
    
    </script>
  3. 编写⼀个动物类,该类包含name的属性,和say的⽅法。 通过say⽅法可以打印动物说话了。编写⼀个Dog类继承动物类,要求 该类中包含颜⾊的属性,该类重写say⽅法,要求打印⽗类的say⽅法⾥的内容,并且打印 动物颜⾊+动物名字+“叫了”。(备注狗会一直叫)
    <script>
        class Animal {
            constructor(name) {
                this.name = name;
            }
            say() {
                console.log("动物说话了")
            }
        }
    
        class Dog extends Animal {
            constructor(name, color) {
                super(name)
                this.color = color
            }
    
            say() {
                super.say()
                console.log(this.color + this.name + "叫了")
            }
        }
    
        const dog = new Dog("毛毛", "金色")
        dog.say()
    </script>
  4. 、现在有⽤户的⾓⾊有数组,如:[{id:1,name:’经理’},{id:2,name:’员⼯’}],⽤户已选择的数组[{id:2,name:’经理’}], 要求获取⽤户未 选中的⾓⾊列表,和⽤户已选择的⾓⾊的id数组。(使⽤es6语法实现)map、filter、some
    <script>
        const roleList = [{
            id: 1,
            name: '老板'
        }, {
            id: 2,
            name: '经理'
        }];
            
        // 用户已选择的数组
        const selectedRoleList = [{
            id: 2,
            name: '经理'
        }];
    
    
        const unSelectedRoles = roleList.filter(item => !selectedRoleList.some(selectedItem => selectedItem.id == item.id))
        console.log(unSelectedRoles);
        const selectedIds = selectedRoleList.map(item => item.id)
        console.log(selectedIds);
    </script>

 

标签:练习题,function,arr,console,log,第三周,var,return
来源: https://www.cnblogs.com/liu-2001/p/16596546.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有