var函数

将字符串转换为整数?

廉价感情. 提交于 2019-12-06 20:21:24
如何在JavaScript中将字符串转换为整数? #1楼 尝试parseInt。 var number = parseInt("10", 10); //number will have value of 10. #2楼 尝试parseInt函数: var number = parseInt("10"); 但有一个问题。 如果尝试使用parseInt函数转换“ 010”,它将检测为八进制数字,并返回数字8。因此,您需要指定一个基数(从2到36)。 在这种情况下,以10为底。 parseInt(string, radix) 例: var result = parseInt("010", 10) == 10; // Returns true var result = parseInt("010") == 10; // Returns false 请注意, parseInt 在解析任何有效内容后会忽略错误数据。 该GUID将解析为51: var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true #3楼 最简单的方法是使用本机 Number 函数: var x = Number("1000") 如果这对您不起作用,则有 parseInt , 一元plus ,

JS Symbol的使用

試著忘記壹切 提交于 2019-12-06 20:07:17
Symbol:ES6新增的数据类型 - 基本类型 值是由Symbol函数调用产生的。 var s1 = Symbol ( ) ; var s2 = Symbol ( ) ; var s3 = Symbol ( 'miaov' ) ; var s4 = Symbol ( 'miaov' ) ; console . log ( s1 , s2 ) ; console . log ( s3 == s4 ) ; 结果为: Symbol ( ) Symbol ( ) false Symbol的值都是唯一的。 属性私有化 - 数据保护 function Person ( name , gender ) { this . name = name ; this . gender = gender ; } var p1 = new Person ( '浅殇' , '女' ) ; console . log ( p1 . gender ) 结果为: 女 另一个匿名函数例子: var Person = ( function ( ) { var _gender = '' ; function P ( name , gender ) { this . name = name ; _gender = gender ; } ; P . prototype . getGender = function ( ) {

ES6学习之路~~Symbol:独一无二的值类型

坚强是说给别人听的谎言 提交于 2019-12-06 20:05:15
ES6学习之路~~Symbol:独一无二的值类型 Symbol是什么呢?先看下面这个面试题 1. js有多少种数据类型? 同学们异口同声的回答:6种。 那对不对呢?在ES5及以前,是对的。但是,注意啊,现在已经是ES6正式发布两年后了,要回答7种! 至于除了:undefined、null、string、number、boolean、object这六种之外的第七种呢,就是这节我要详细述说的symbol类型了。 我们先来验证下,在谷歌控制台输入下面的代码看看: let s = Symbol(); console.log(s); // 打印 Symbol() typeof s; // 数据类型为 "symbol" Symbol数据类型是怎么申明的? 先不管这个数据类型有什么用(既然能通过ES6,就不用质疑其作用啦),先来看看怎么才能用出来(在支持ES6,例如谷歌控制台运行下面的代码) let s1 = value; // 只能申明string,number,boolean,object类型的数据 let s2; // 申明值为undefined的数据,未赋值前为undefined类型,赋值后,变量类型根据值类型改变 let s3 = null ; // 申明值为null的数据 <!-- 以上,常见的申明方式并不能申明出symbol类型 --> let sym = Symbol(); //

JavaScript作用域

丶灬走出姿态 提交于 2019-12-06 19:56:27
一、“JavaScript中无块级作用域” function Main(){ if(1==1){ var name = 'seven'; } console.log(name); } // 输出: seven 补充:标题之所以添加双引号是因为JavaScript6中新引入了 let 关键字,用于指定变量属于块级作用域。 二、JavaScript采用函数作用域 在JavaScript中每个函数作为一个作用域,在外部无法访问内部作用域中的变量。 function Main(){ var innerValue = 'seven'; } Main(); console.log(innerValue); // 报错:Uncaught ReferenceError: innerValue is not defined 三、JavaScript的作用域链 由于JavaScript中的每个函数作为一个作用域,如果出现函数嵌套函数,则就会出现作用域链。 xo = 'alex'; function Func(){ var xo = "seven"; function inner(){ var xo = 'alvin'; console.log(xo); } inner(); } Func(); 如上述代码则出现三个作用域组成的作用域链,如果出现作用域链后,那么寻找变量时候就会出现顺序,对于上述实例:

类数组(Array-like)对象应用

核能气质少年 提交于 2019-12-06 16:53:36
类数组(Array-like)对象 slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的 arguments 就是一个类数组对象的例子。 function list() { return Array.prototype.slice.call(arguments); } var list1 = list(1, 2, 3); // [1, 2, 3] 除了使用 Array.prototype.slice.call( arguments ) ,你也可以简单的使用 [].slice.call(arguments) 来代替。另外,你可以使用 bind 来简化该过程。 var unboundSlice = Array.prototype.slice; var slice = Function.prototype.call.bind(unboundSlice); function list() { return slice(arguments); } var list1 = list(1, 2, 3); // [1, 2, 3] . 来源: https://www.cnblogs.com/jianxian/p/11996043.html

ECMAScript 6

此生再无相见时 提交于 2019-12-06 15:19:27
本文出自珠峰培训: http://www.zhufengpeixun.cn/ahead/html/1.ES2015.html 1. 作用域变量 作用域就是一个变量的作用范围。也就是你声明一个变量以后,这个变量可以在什么场合下使用 以前的 JavaScript 只有全局作用域,还有一个函数作用域 1.1 var的问题 var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改。 if (true) { var a = "a"; // 期望a是某一个值 } console.log(a); var在for循环标记变量共享,一般在循环中使用的i会被共享,其本质上也是由于没有块级作用域造成的 for (var i = 0; i < 3; i++) { setTimeout(function () { alert(i); }, 0); } 1.2 块级作用域 在用var定义变量的时候,变量是通过闭包进行隔离的,现在用了let,不仅仅可以通过闭包隔离,还增加了一些块级作用域隔离。 块级作用用一组大括号定义一个块,使用 let 定义的变量在大括号的外面是访问不到的   1.2.1 实现块级作用域 if(true){ let name = 'zfpx'; } console.log(name);// ReferenceError: name

JS面试题重点

旧时模样 提交于 2019-12-06 13:49:21
面试题更新中~ 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型: Undefined、Null、Boolean、Number、String 值类型:数值、布尔值、 null、undefined。 引用类型:对象、数组、函数。 堆栈数据结构:是一种支持后进先出 (LIFO)的集合,即后被插入的数据,先被取出! js数组中提供了以下几个方法可以让我们很方便实现堆栈: shift:从数组中把第一个元素删除,并返回这个元素的值。 unshift: 在数组的开头添加一个或更多元素,并返回新的长度 push:在数组的中末尾添加元素,并返回新的长度 pop:从数组中把最后一个元素删除,并返回这个元素的值。 2.判断数据类型? typeof返回的类型都是字符串形式,可以判断function的类型;在判断除Object类型的对象时比较方便。 判断已知对象类型的方法: instanceof,后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。 3.异步编程? 方法 1:回调函数,优点是简单、容易理解和部署,缺点是不利于代码的阅读和维护,各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数。 方法 2:时间监听,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以“去耦合”(Decoupling)

我理解的浅拷贝和深拷贝

一世执手 提交于 2019-12-06 13:08:43
/*--> */ /*--> */ 浅拷贝:通过一个对象来创建一个新对象,如果对象的属性的值是基本数据类型,直接把值赋给新对象,如果值是引用类型则把数据的对应的内存地址赋给新对象;因为两个对象对应的是同一个内存地址,当其中一个对象数据改变了,就相当于改变了内存地址,所以会影响到别一个对象; 深拷贝:通过一个对象来创建一个新对象,无论基本类型还是引用类型都将值赋给新对象,引用类型会开辟一块新的内存地址用于存放数据,因为不会相互影响; 浅拷贝的方法: 1.直接赋值: var obj1 = {a: 1, b: 2}; var obj2 = obj1; obj2.b = 22; console.log(obj1.b); // 22 2.Object.assign var obj1 = {a: 1, b: 2}; var obj2 = {c: 3}; Object.assign(obj1, obj2); console.log(obj1) // {a: 1, b: 2, c: 3} obj2.c = 4; console.log(obj1.c) // 3 乍一看,这貌似两个对象互不影响了!难道是深拷贝了? var obj1 = {a: 1, b: 2}; var obj2 = {c: {z: 3}}; Object.assign(obj1, obj2); console.log(obj1);

es6 新增变量声明方式

帅比萌擦擦* 提交于 2019-12-06 11:47:31
let 与 var var var声明的变量拥有 全局作用域 或者 局部作用域 在全局中声明变量即为全局变量 在函数中声明变量即为局部变量 而var在使用过程中也逐渐暴露出许多问题 var的几大问题 变量提升 使用var来声明变量会出现变量提升的问题,即在声明变量之前就调用变量 console.log(info);//undefined var info = 10; 出现上面情况其实是非常 不好的 ,因为在声明之前使用的话应该去报出一个错误而不是用一个undefined给这个变量赋值。 这个问题在函数中尤为明显 var info = 10; function fn1(){ console.log(info);//undefined var info = 20; } fn1(); 在循环中的问题 var在循环中的问题也是相当严重 下面我遇到的一个情况 //html中有四个span var oSpan = document.getElementsByTagName('span'); for(var i = 0 ; i < oSpan.length ; i++ ){ oSpan[i].onclick = function(){ console.log(this);//点击出现 你点的那个span } } 我们发现在这时是可以获得点击的元素的 但是我们把 this 换成 oSpan[i]

python-前端JS

♀尐吖头ヾ 提交于 2019-12-06 10:23:23
JavaScript JS(JavaScript)和 JAVA是没有任何关系的,使前端语言动作的基础 特点 :现在对前端所有的动作操作都是基于JS操作的。是一门逻辑语言 简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。 解释执行( 解释语言 ):事先不编译、逐行执行、无需进行严格的变量声明。 基于对象:内置大量现成对象,编写少量程序可以完成目标 JS的开发周期为10天。 Node.js就是基于Chrome V8 引擎的 JavaScript 运行环境。 作用 : 对于前端页面的展示开发 语法逻辑不够严谨 Javascript主要组成: ECMAscript js的标准语法 BOM (Browser Object Mode) 浏览器对象模型 JS提供的一种操作浏览器的一种语法 DOM (Document Object Mode) 文档对象模型 JS的引入 JS的引入有两种方法: 文件引入(在另外一个单独的文件中写JS代码,然后在需要的HTML代码中 推荐在head标签中引入JS,或者最后再引入): <script src="./demo1.js"></script> 直接写在script标签中 <script>console.log('cc')</script> 控制台输出 console.log 在控制台输出内容: console.log('ccc')