js代码

js 函数讲解

这一生的挚爱 提交于 2020-02-09 07:15:32
函数 来自 《JavaScript 标准参考教程(alpha)》 ,by 阮一峰 目录 概述 函数的声明 函数的重复声明 圆括号运算符,return 语句和递归 第一等公民 函数名的提升 不能在条件语句中声明函数 函数的属性和方法 name 属性 length 属性 toString() 函数作用域 定义 函数内部的变量提升 函数本身的作用域 参数 概述 参数的省略 传递方式 同名参数 arguments 对象 函数的其他知识点 闭包 立即调用的函数表达式(IIFE) eval 命令 参考链接 函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。 概述 函数的声明 JavaScript 有三种声明函数的方法。 (1)function 命令 function 命令声明的代码区块,就是一个函数。 function 命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。 function print(s) { console.log(s); } 上面的代码命名了一个 print 函数,以后使用 print() 这种形式,就可以调用相应的代码。这叫做函数的声明(Function Declaration)。 (2)函数表达式 除了用 function 命令声明函数,还可以采用变量赋值的写法。 var print =

webpack打包的用法

情到浓时终转凉″ 提交于 2020-02-09 04:10:51
webpack   定义:webpack是前端资源加载或打包工具,     资源:img、css、js、json等;   用法:    打包JS文件:    第一步:      1.首先创建一个新的文件夹,注意要使用字母,为了方便往下编辑,再次是为了提升自己的知识涵养。     然后shift键加鼠标右击,在当前创建目录下打开powershell窗口     然后配置模块说明文件···输入指令 :        npm init              然后生成一个package.json的模块;               name - 包名。       version - 包的版本号。                description - 包的描述。            homepage - 包的官网 url 。       author - 包的作者姓名。       contributors - 包的其他贡献者姓名。       dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。           repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。       main - main 字段指定了程序的主入口文件,require(

JS高级技巧

。_饼干妹妹 提交于 2020-02-09 00:26:04
//region安全的类型检测 //可靠的方法:在任何值上调用原生toString()方法,都会返回一个[object NativeConstructorName]格式的字符串。每个类内部都有一个[Class]属性 这个属性指定了对应的构造函数名 var va = []; //alert( Object.prototype.toString.call( va ) );//[object Array] //endregion //region作用域安全的构造函数 function Person1( name, age ) { this.name = name; this.age = age; } var person1 = new Person1( "zodiac", 22 ); //每当使用new时 构造函数内的this对象会指向新创建的对象示例 //当没有使用new创建构造函数时出错 直接调用构造函数 this会映射到全局window对象 person1 = Person1( "zodiac", 22 ); // alert(window.name);//"zodiac" //解决方案: function Person2( name, age ) {//instanceof用来在运行时指出对象是否是特定类的一个实例 if ( this instanceof Person2 ) {

JS高级技巧(简洁版)

隐身守侯 提交于 2020-02-08 23:17:01
高级函数 由于在 JS 中,所有的函数都是对象,所以使用函数指针十分简单,也是这些东西使 JS 函数有趣且强大 安全的类型检测 JS 内置的类型检测机制并不是完全可靠的 typeof 操作符返回一个字符串,表示未经计算的操作数的类型,在大多数情况下很靠谱,但是当然还有例外 正则表达式 typeof /s/ === 'function'; // Chrome 1-12 , 不符合 ECMAScript 5.1 typeof /s/ === 'object'; // Firefox 5+ , 符合 ECMAScript 5.1 NULL typeof null === 'object'; // 从一开始出现JavaScript就是这样的 在 JavaScript 最初的实现中, JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。由于 null 代表的是空指针(大多数平台下值为 0x00 ),因此, null 的类型标签也成为了 0, typeof null 就错误的返回了 object instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性 语法 object instanceof constructor(要检测的对象 instanceof 构造函数) 但是在浏览器中

js对象声明方式

牧云@^-^@ 提交于 2020-02-08 22:30:52
在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的。 JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听说的HASH表、字典、健/值对?),而其中的值类型可能是内置类型(如number,string),也可能是对象。 一、由一对大括号括起来 var emptyObj = {}; var myObj = { ' id ' : 1 , // 属性名用引号括起来,属性间由逗号隔开 ' name ' : ' myName ' }; // var m = new myObj(); //不支持   不知你注意到对象都是用 var 声明的没有,像上面的代码,就只是简单的声明一个对象,它只有一份拷贝,你不能像实例化类对象一样对它采用new操作,像上面代码的注释部分。这样就极大的限制了对象的重用,除非你建立的对象只需要一份拷贝,否则考虑用其他方法建立对象。   下面一起看看如何访问对象的属性和方法。 var myObj = { ' id ' : 1 , ' fun ' : function () { document.writeln( this .id + ' - ' + this .name);

js面向对象的三大特征加闭包

泄露秘密 提交于 2020-02-08 19:54:48
建立在抽象的基础上 一、封装: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link href="css/game.css" type="text/css" rel="stylesheet" /> <script language="JavaScript" type="text/javascript"> function Person(name,age1,sal1){ this.name=name; // 私有 var age=age1; var salary=sal1; this.show=function(){ window.alert(age+" "+salary); } //私有可以访问属性,但是外部调用不行 function show2(){ window.alert(age+" "+salary); } } var p1=new Person("sp",20,50000); window.alert(p1.name+" "+p1.age); p1.show(); </script> </head> <body> </body> </html> View Code proptype对所有的方法添加方法,当时不能访问私有对象和方法 <!DOCTYPE html> <html>

使用jQuery Mobile和Phone Gap开发Android应用程序

谁都会走 提交于 2020-02-08 19:21:18
使用jQuery Mobile和Phone Gap开发Android应用程序 1、 软件准备 要进行android app的开发,当然需要准备Java, eclipse和安装Android SDK,这个部分网络上面很多方法,搜索“安装Android SDK”即可找到很多答案,所以就不再这里浪费口水。 2、 知识准备 (1)了解jQuery Mobile这个js框架,知道怎么组织一个简单的页面。 官方网站:http://jquerymobile.com/(记得下载一个js库文件) (2)了解Phone Gap,怎么利用Phone Gap在后面的内容也有介绍。 官方网站:http://phonegap.com/(同样记得下载相关文件) (3)能够使用jQuery进行开发。 3、 组织工程目录 (1)打开Eclipse,建立一个android应用工程,见下图 (2)解压phonegap的压缩包,可以看到它针对不懂的应用类型进行了不同的分类,有android、IOS、Windows Phone等移动终端系统,打开其中的android文件夹。 (3)在刚才新建的工程的根目录下新建一个名为libs的文件夹,找到(1)中android文件夹中的jar包粘贴到刚才的libs文件夹下。 (4)将(1)中android文件夹下的xml文件夹整个粘贴到工程更目录下的res文件夹下。 (5

Javascript学习笔记:JS错误处理

*爱你&永不变心* 提交于 2020-02-08 17:29:47
1.语法错误 不符合js语法的错误。 2.运行时错误 运行时错误(Runtime Error)值代码没有无法错误,而在运行时才发生的错误。 ReferenceError ,变量引用异常。 TypeError ,类型使用错误。 RangeError ,一般在递归爆栈时触发,即递归深度太深。 3.逻辑错误 逻辑错误一般指的是结果与预期不符。 debugger使用 在代码段中加入 debugger; 语句,可以使程序在运行时在debugger处暂停运行。此后可以使用浏览器的单步调试工具进行调试。也可以使用断点。 4.主动触发错误:throw/try catch function multiple ( a , b ) { if ( typeof a != 'number' || typeof b != 'number' ) { throw new Error ( '参数必须是数字!' ) ; } return a * b ; } try { c = multiple ( 'a' , 'b' ) ; alert ( c ) ; } catch ( e ) { alert ( "必须是两个数字" ) ; } 来源: CSDN 作者: Zijeak 链接: https://blog.csdn.net/qq_18404993/article/details/104222683

使用js写个数字时钟

两盒软妹~` 提交于 2020-02-08 17:29:08
实现原理 通过 Date 对象获取当前计算机的系统时间,注册计时器每隔一秒重新获取时间即可 格式化时间 function setTime() { const now = new Date(); const year = now.getFullYear(); const month = now.getMonth() + 1; const date = now.getDate(); const hour = now.getHours(); const minute = now.getMinutes(); const second = now.getSeconds(); return `${year}年${month}月${date}日 ${hour}:${minute}:${second < 10 ? '0' + second : second}` } 这里简单地给秒钟显示时补个零 效果 完整代码 import React, { useEffect, useState } from 'react'; export default () => { const [now, setNow] = useState(setTime()) useEffect(() => { const timer = setInterval(() => { const now = setTime();

JS经典理解例子

空扰寡人 提交于 2020-02-08 15:13:05
1. var name = 'the window'; var obj = {   name:"my obj",   getNameFunc:function(){     return function(){       return this.name;     }   } }; alert(obj.getNameFunc()());//问输出结果是多少 答案:the window 理解:这里的obj.getNameFunc()返回了一个function,然后再再外面调用这个function,这时候调用function的是window对象,所有输出the window 2. var name = 'the window'; var obj = {   name:"my obj",   getNameFunc:function(){     var that = this;     return function(){       return that.name;     }   } }; alert(obj.getNameFunc()());//问输出结果是多少 答案:my obj 理解:返回的这个function是getNameFunc的一个内部函数,而他使用了外部函数定义的变量,所以产生了闭包,再调用执行return that.name;的时候