JS练习题+对象(函数封装、数组)

 
function some(ele, arr = []) {
    let flat = false;
	for(let i=0;i<arr.length;i++){
        if(ele === arr[i]){
            flat = true;
            break
            }
        }
        return flat;
 }
let re = some('荔枝', ['苹果', '香蕉', '橘子', '荔枝', '梨子'])
console.log(re) // true
let re1 = some('榴莲', ['苹果', '香蕉', '橘子', '荔枝', '梨子'])
console.log(re1) // false

    // 封装函数返回元素的下标  [1, 5, 10, 22, 8, 7]
    // 1. 封装函数 findIndex,传递2个参数 元素、数组
    function findIndex(ele, arr = []) {
        let index = -1;
     	for(let i =0;i<arr.length;i++){
            if(ele === arr[i]){
                index = i;
                }
            }return index;
    }
    let index1 = findIndex(10, [1, 5, 10, 22, 8, 7])
    console.log(index1) // 2
    let index2 = findIndex(8, [1, 5, 10, 22, 8, 7])
    console.log(index2) // 4
    let index3 = findIndex(88, [1, 5, 10, 22, 8, 7])
    console.log(index3) // -1

 

<script>  
    // 使用逻辑或运算符为y设置默认参数  
    function fn(x, y) {  
        y = y || 0; // 如果y是undefined或假值,则将其设置为0  
        console.log(x + y);  
        return x + y; // 返回数字型的结果  
    }  
      
    fn(1); // 输出:1,因为y是undefined,所以被设置为0  
  </script>

<script>  
    // 使用ES6默认参数  
    function fn(x, y = 0) { // 如果y未传递,则默认为0  
        console.log(x + y);  
        return x + y; // 返回数字型的结果  
    }  
      
    fn(1); // 输出:1,因为y使用了默认值0  
  </script>

优先使用ES6的第二种,第一种容易出问题。

对象相关知识 

在JavaScript中,对象是一种复杂的数据类型,它允许你存储多个值作为一个单独的实体。这些值可以是不同的数据类型,如数字、字符串、布尔值,甚至其他对象或数组。对象在JavaScript中扮演着非常重要的角色,以下是它们的一些主要作用:

  1. 封装数据:对象允许你将相关的数据(属性和方法)封装在一起,形成一个单一的实体。这使得数据更易于管理和维护。
  2. 表示现实世界中的实体:对象可以用来表示现实世界中的实体,如人、车、动物等。每个对象都可以有自己的属性和方法,这些属性和方法描述了该实体的特征和行为。
  3. 实现模块化编程:通过将相关的数据和功能封装在对象中,可以实现模块化编程。这有助于减少代码之间的耦合度,提高代码的可读性和可维护性。
  4. 继承和多态:JavaScript中的对象支持原型链和继承机制,这使得对象可以继承其他对象的属性和方法。这有助于实现代码的重用和扩展性。同时,多态性也使得对象能够根据不同的上下文表现出不同的行为。
  5. 作为函数的返回值或参数:对象可以作为函数的返回值或参数传递,这使得函数能够处理更复杂的数据结构,并在函数之间传递复杂的数据。
  6. 与DOM交互:在Web开发中,JavaScript经常用于与DOM(文档对象模型)交互。DOM本身就是一个对象树,JavaScript对象可以用来表示和操作DOM元素,实现页面的动态效果和交互功能。

function在对象外面叫函数,在对象里面叫方法。

let ming = {
    uname:'小宝',
    uage : 18,
    usex : '男',
    song:function(){
        console.log("唱歌")
        },
    dance:function(){
        console.log("喜欢跳舞");
        }
    }
ming.song()
        

 遍历对象:

对象没有数组一样的length属性,所以无法确定长度

对象里面的无序的键值对,没有规律,不像数组里有规律

        let students = [
            {name:'小栏',age:12,gender:'男',home:'山东'},
            {name:'小话',age:12,gender:'男',home:'山东'},
            {name:'小白',age:13,gender:'女',home:'山东'},
            {name:'小率',age:15,gender:'男',home:'山东'},

        ]
        for(let i=0;i<students.length;i++){
            for(let k in students[i]){
                console.log(students[i][k])
                        }
                    }

内层循环遍历的是students[i]的属性,k是每个学生对象的属性名,students[i][k]是对应的属性值。使用console.log(k + ': ' + students[i][k]),我们可以打印出每个属性的名字和值。

表格渲染:

            let students = [
                { name: '小栏', age: 12, gender: '男', home: '山东' },
                { name: '小话', age: 12, gender: '男', home: '山东' },
                { name: '小白', age: 13, gender: '女', home: '山东' },
                { name: '小率', age: 15, gender: '男', home: '山东' },
            ]
            for (let i = 0; i < students.length; i++) {
                document.write(`
                <tr>
                    <td>${i + 1}</td>
                    <td>${students[i].name}</td>
                    <td>${students[i].age}</td>
                    <td>${students[i].gender}</td>
                    <td>${students[i].home}</td>
                </tr>
                `)
            }

内置对象:

Math数学对象

作用:提供数学方法

console.log(Math.floor(1.1))//1

console.log(Math.ceil(1.1))  //2

console.log(Math.round(-1.5))  //-1

最后一个为四舍五入,可以理解为离谁进取谁。

知识对比:parseInt(1.2)   parseInt('1.2')   parseInt里面可以放字符串

它直接去掉了小数部分

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值