javascript中函数能都放在一个js文件里吗
发布时间:2025-05-21 01:34:21 发布人:远客网络
一、javascript中函数能都放在一个js文件里吗
理论上可以,但实际上不行。在不同方法,不同全局变量的情况下,可以将JS函数集成到一个文件,但实际项目中没有人这么做.都是按"功能"和"模块"来分文件的。
对于一个项目(区别于简单页面或工程)来说,你把所有的JS放到一个文件,那就不可避免的将某个模块不需要的函数加载到页面中,造成加载的浪费,影响加载的速度。
在不同模块应用中,可能出现用同名函数(因为功能完全一样,只是用于不同的对象)或者同名的全局变量,此时会造成JS冲突。
不易查找和维护函数,就像我们理论上可以上把所有的文件和程序都装到C盘,但实际上我们的硬盘分了几个区和创建很多文件夹一个道理。
所以JS一般按模块和功能区分文件。
二、你不知道的Javascript等号运算符
JavaScript中共有2个个判断相等的运算符==和===。
这2个运算符的差别在于==在判断相等的时候会进行类型的转换,而===则不会进行类型转换。
===一般称之为严格相等。用来判断两个操作数是否严格相等。
首先判断两个操作数的类型是否一致,如果不一致就直接认为不等。
如果两个操作数的类型一致,则再判断内容是否相等。
"true"===true//类型不一致, false
"1"==="1"//类型一致,并且内容也一致。 true
如果使用===判断2个对象类型的数据,则直接判断这 2个对象是否为同一个对象。
如果一边是对象类型,一边是基本类型则一定不等。
{}==={}//两边都是对象,但是不是同一个对象,所以 false
[]=== []//两边都是对象,但是不是同一个对象,所以 false
[]===""//一变是对象类型,一边是基本类型,所以false
==运算符判断相等,由于涉及到类型的强制转换,所以最为复杂。
两边都是基本类型,但是类型不同
2.1两边都是基本类型,且类型相同
这个最简单,就看内容是否相等即可。
这个也简单,规则和===一样,也是判断两个对象是否为同一个对象。
2.3两边都是基本类型,但是类型不同
这个规则比较复杂,很多人也记不住那么多的规则。
经过我的分析和总结,其实这个规则只有一条:
这个规则也比较复杂,需要以2.3的规则为基础。
经过我的分析和总结,其实规则只有 2条:
这种情况比较的时候,都是先把对象转换成基本类型再去比较!
先调用对象的valueOf方法,如果返回值值是基本类型的数据,就用这个返回的基本类型的数据去比较。
如果valueOf方法的返回值不是基本类型的数据,则调用toString方法,然后使用toString的返回值进行比较。
注意:关于valueOf和toString方法的说明:
这个两个方法是在Object.prototype对象中定义的,所以所有的对象都会继承这两个方法。
默认情况下valueOf是返回的这个对象的本身(内部其实是返回的this)。
默认情况下toString返回的是字符串: [object Object]
但是有些内置对象覆写了这2个方法。
console.log([1,2].toString());//"1,2"返回的是数组的元素用,连接起来的字符串
console.log(/a/gi.toString());//"/a/gi"正则表达式的字面量字符串
console.log((function(){//注释}).toString());//"function(){//注释}"返回函数源码
console.log(newNumber(10).toString());//"10"返回对应的基本类型的字面量形式
console.log(({}).toString());//"[object Object]"
解析:一边是对象,一边是字符串。则会把对象转换成基本类型。
先看valueOf,默认返回的是对象,所以再看toString默认返回的是"[object Object]"所以是true
console.log(obj1=="[object Object]");// true
解析:一边是对象,一边是number。则会把对象转换成基本类型。先看valueOf,返回的是 number类型 1,所以用这个返回值去比较。
解析:一边是对象,一边是String。则会把对象转换成基本类型。先看valueOf,返回的是对象,所以调用toString,返回的是字符串"李四"。
console.log(obj1=="李四");// true
解析:一边是对象,一边是字符串。则会把对象转换成基本类型。先看valueOf,默认返回的是对象,所以调用toString,返回的是字符串"1,2"。
console.log(arr=="1,2");// true
解析:一边是对象,一边是字符串。则会把对象转换成基本类型。先看valueOf,默认返回的是布尔值 true,然后把true转换成number 1,
右边是字符串,然后把字符串转换number 1
===一句话总结:先看类型,类型相同再比较内容。类型不同,直接false
==一句话总结:不同基本类型,则都向numbe方向转,然后比较。一边对象一边基本类型,则对象先调用valueOf,再调用toString来转成基本类型,再比较。
三、对你不能太温柔(下)txt全集下载
1、对你不能太温柔(下) txt全集小说附件已上传到百度网盘,点击免费下载:
2、访问本页面,您的浏览器需要支持JavaScript
3、The browser needs JavaScript to continue
4、访问本页面,您的浏览器需要支持JavaScript
5、The browser needs JavaScript to continue
6、平安夜那天,我们早早关门了,圣诞节那天大家都决定不开业休息一天,算是犒劳我们这一个半月来没有休息一天的赶工。
7、我们三人刚刚吃完火锅,浑身舒坦暖洋洋的晃在大街上。
8、经过一间间精品店时,李玟茹对着里面摆设的精巧物品不住发出叹息。
9、陈清平每次都要把她从人家玻璃上剥下来。
10、「你少把口水黏在人家的玻璃窗上,都快三十岁的人了,还这么弱智,有点气质好不好。」
11、李玟茹理直气壮的说:「你是妒嫉我比你年轻吗?本小姐童心犹在,喜欢搞清纯不好吗?」
12、「恶!你少恶心了,不怕吓死满街的老百姓。」
13、李玟茹马上把胳膊撘在我肩上,笑眯眯的说:「见悟小迪迪,圣诞节喜欢什么礼物呢?姊姊给你买。」
14、我还没来得及拒绝,陈清平扔开她的手,绕上我肩膀说:「色女,少来拐骗我家……