填坑填坑---------

填一下坑!!!


关于let和var 先看两组代码:

if (false) {
    var i = 0;
}
alert(i);//undefind 

if (false) {
    let i = 0;
}
alert(i);// Uncaught ReferenceError: i is not defined

关于深克隆

function deepClone(arr) {
    let result = (arr instanceof Array) ? [] : {};
    for (let i in arr) {
        result[i] = (typeof  arr[i] === 'object') ? deepClone(arr[i]) : arr[i];
    }
    return result
}

//test
let arr = [1, 2, 3, {1: 'wei', 2: "liu", 3: 'wang'}, [4, 5, 6]];
deepClone(arr);// [ 1,2,3,{ '1': 'wei', '2': 'liu', '3': 'wang },[ 4, 5, 6 ] ]

字符串包含

先用这个吧,明天kmp算法实现补上去。

 function isContain(str1, str2) {
    if (str1.indexOf(str2) === -1) {
        return false;
    } else {
        return true;
    }
}

let str1 = 'wejuan';
let str2 = 'juan';
console.log(isContain(str1, str2));//true 

数组的判断

let log = console.log.bind(console);
let arr = [];
//1.es5中的isArray方法

log(Array.isArray(arr));

//2.在任何值上调用Object原生的toString()方法,都会返回一个[Object nativeConstructorName]格式的字符串
function isArray(value) {
    return Object.prototype.toString.call(value) === '[object Array]'
}

log(isArray(arr));

//也可以用此方法来检测函数,正则表达式,原生js对象
function isFunction(value) {
    return Object.prototype.toString.call(value) === '[object Function]'
}

log(isFunction(isArray));

//object的toString方法不能检测非原生构造函数的构造函数名

//3.如果arr和Array存在于同个全局作用域,我们也可以用instanceof判断
log(arr instanceof Array);

//4.typeof判断,用它判断Regexp可能会出问题。
log(typeof RegExp === 'function');

驼峰形式的字符串与下划线形式字符串转换

//驼峰转下划线
let str='qiuJuan';
str=str.replace(/([A-Z])/g,"_$1").toLowerCase();
console.log(str);//qiu_juan

//下划线转驼峰
let result = str.split('_');
let newStr = result[0];
for (let i = 1; i < result.length; i++) {
    newStr=newStr + result[i].slice(0, 1).toUpperCase() + result[i].slice(1);
}
console.log(newStr);//qiuJuan

typeof函数的封装

function type(target) {
    let type=typeof (target);
    let template={
        '[object Array]':'array',
        '[object Object]':'object',
        '[object Number]': 'number-object',
        '[object Boolean]':'boolean-object',
        '[object String]':'string-object'
    }
    if (target===null) {
        return 'null'
    }else if(type=='object'){
        let str=Object.prototype.toString.call(target)
        return template[str]
    }else{
        return type
    }
}
console.log(type('wei'))//string
console.log(type({'first':'wei','second':'liu'}))//object
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cygwin是一个在Windows操作系统上运行类似于Linux环境的工具。根据引用\[1\]和引用\[2\]的内容,安装Cygwin的步骤如下: 1. 下载适合自己系统的64位或32位安装包。 2. 运行下载的安装包,按照安装向导的指示进行安装。 3. 在安装过程中,可以选择自定义路径和添加镜像源,推荐使用国内阿里云的镜像源。 4. 安装完成后,可以通过运行命令`cygcheck -c cygwin`来验证Cygwin的安装是否成功。 5. 如果需要使用gcc、g++、make等编译工具,可以在命令行中执行`setup-x86_64.exe -q -P wget -P gcc-g++ -P make -P diffutils -P libmpfr-devel -P libgmp-devel -P libmpc-devel`来安装这些工具。 6. 安装完成后,可以通过运行命令`gcc --version`来验证gcc的安装是否成功。 根据引用\[3\]的内容,安装完成后,Cygwin的目录结构与Linux系统的目录结构基本一致,可以在"usr/include"目录中找到大部分常用Linux C函数的头文件。 至于Cygwin是否支持32位系统,根据引用\[3\]的内容,Cygwin是支持32位系统的。因此,Cygwin可以在32位系统上正常运行。 #### 引用[.reference_title] - *1* [windows安装cygwin(一步一步,有坑填坑)](https://blog.csdn.net/weixin_43351473/article/details/105026078)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [cygwin 安装](https://blog.csdn.net/phone13144830339/article/details/112061189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Cygwin安装笔记](https://blog.csdn.net/m0_59172724/article/details/122771403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值