JS
MayeF
学无止境,Keep Going!
展开
-
JS学习-数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机理所当然的可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据。不同的数据,需要定义不同的数据类型。Number和C语言等大部分语言不同,JS的数值类型不区分整型和浮点型。统一用Number类型表示 NaN:not a number。 Infinity:表示无限大字符串字符串是以单引号或双引号原创 2017-08-08 09:44:10 · 297 阅读 · 0 评论 -
JS学习-generator
generator(生成器)是ES6标准引入的新的数据类型。 一个generator函数不会调用不会立即执行,而是调用next()函数才回执行:function* foo(x) { yield "1"; yield "2"; yield "3"; return x+x;}var fooRe = foo(3);//不会立即执行var next1 = fooRe原创 2017-08-11 11:18:34 · 427 阅读 · 0 评论 -
JS学习-标准对象
再JS世界里,一切皆对象。 为了区分对象的类型,JS中使用typeof操作符来获取对象类型,且返回字符串:typeof 123; // 'number'typeof NaN; // 'number'typeof 'str'; // 'string'typeof true; // 'boolean'typeof undefined; // 'undefined'typeof Math.ab原创 2017-08-14 16:01:03 · 393 阅读 · 0 评论 -
JS学习-正则表达式
1.1 常见的判断Email地址是否合法,电话号码、身份证位数等,正则匹配就是为此而生。 正则表达式是一种用来匹配字符串的强有力武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的 对于专门的正则表达式学习教程推荐:正则表达式30分钟入门教程基本规则:\d匹配一个数字\w匹配一个字母或数字.匹配任意字符*匹原创 2017-08-14 17:20:36 · 389 阅读 · 0 评论 -
JS学习-基本语法
前言“好记性不如烂笔头”这句话是很有道理的。总感觉看过之后印象不是很深,还是动动手记一下效果好很多。 详细的一些教程可以参考: w3cschool-JS w3cschool-ECMAScript 此处的学习教程是基于廖雪峰的官方网站 个人仅仅做一些总结和对比语法1.1 JS语法和大部分传统语法类似,每个语句都以;结束,语句块用{...}。但是JS并不强制要求再每个语句结尾加;,浏览器会负责原创 2017-08-07 13:36:38 · 346 阅读 · 0 评论 -
JS学习-面向对象编程
和Swift等其他面向对象编程的语言不同,JS没有类和实例对象的概念。 JS是通过原型(prototype)来实现的面向对象编程原型实现继承原型是指当我们想要创建xiaoming这个具体的学生时,我们并没有一个Student类型可用。那怎么办?恰好有这么一个现成的对象:var robot = { name: 'Robot', height: 1.6, run: functi原创 2017-08-14 18:01:25 · 349 阅读 · 0 评论 -
JS学习-原型链
关于原型链、propotype和__proto__还处于浑浑噩噩中,待以后补上。 参考链接: 三张图搞懂JavaScript的原型对象与原型链原创 2017-08-15 14:16:13 · 367 阅读 · 0 评论 -
JS学习-浏览器对象
windowwindow对象不仅作为全局作用域,也表示浏览器的窗口innerWidth和innerHeight:表示浏览器窗口的内部宽度和高度。内部宽高是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高outerWidth和outerHeight:浏览器窗口的整个宽高navigatornavigator对象表示浏览器的信息。navigator.appName:浏览器名称navi原创 2017-08-15 14:37:23 · 407 阅读 · 0 评论 -
JS学习-操作表单
用JavaScript操作表单和操作DOM是类似的,因为表单本身也是DOM树不过表单的输入框、下拉框等可以接收用户输入,所以用JavaScript来操作表单,可以获得用户输入的内容,或者对一个输入框设置新的内容HTML表单的输入控件主要有以下几种:文本框,对应的<input type="text">,用于输入文本;口令框,对应的<input type="password">,用于输入口令;单选原创 2017-08-15 15:59:11 · 552 阅读 · 0 评论 -
浏览器跨域-CORS
CORS原理分析一、简介CORS全称为”跨域资源共享”(Cross-origin resource sharing) 它允许浏览器跨服务器发起XMLHttpRequest 请求,从而解决Ajax只能同源使用的限制。CORS需要浏览器和服务器同时支持。目前大部分浏览器都支持该功能,但IE浏览器不能低于IE10。只要浏览器支持CORS,主要重任就落到了服务端,需要服务端根据需求配置CORS响应头原创 2017-11-07 16:21:17 · 3055 阅读 · 0 评论 -
JS学习-箭头函数
ES6标准新增了一种新的函数:Arrow Function(箭头函数) 类似于Swfit中的闭包形式x => x * x;//等价于function (x) { return x * x;}如果参数不止一个:// 两个参数:(x, y) => x * x + y * y// 无参数:() => 3.14// 可变参数:(x, y, ...rest) => { var原创 2017-08-09 11:19:45 · 498 阅读 · 0 评论 -
JS学习-filter()和sort()
filter()1.1 顾名思义filter()是一个具有过滤功能的函数 filter()也是Array的一个函数。它接收一个函数,然后根据此函数的返回布尔值决定是否丢弃该元素。true:保留;false:丢弃://去耦var arr = [1, 2, 4, 5, 6, 9, 10, 15];var r = arr.filter(function (x) { return x % 2原创 2017-08-09 10:27:08 · 3154 阅读 · 0 评论 -
JS学习-字符串
JS的字符串用""或''来表示 如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识:"I \'m \"OK\"!";多行字符串由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用反引号` ... ` 表示:`这是一个多行字符串`;模板字符串3.1 拼接字符串或字符串插值,可以使用+来连接var name = "小明";var age = 20;原创 2017-08-08 10:27:39 · 279 阅读 · 0 评论 -
JS学习-数组
1.1 JS的数组可以包含任意数据类型的任意数据。 注意1:1. OC数组包含同一类型的对象;2. swift包含同一类型的任意数据 1.2 通过索引赋值时,如果索引超过了数组范围,则数组的大小会自动变大(为了避免出现错误,存取值保证不会越界):var arr = [1, 2, 3];arr[5] = "x";arr; // arr变为[1, 2, 3, undefined, undefin原创 2017-08-08 10:58:10 · 306 阅读 · 0 评论 -
JS学习-对象和循环
对象类似于大部分语言中的字典类型 1.1 检测对象是否拥有某一属性,可以用in或者hasOwnProperty() 1.2 两者的区别: in:判读某一对象属性的存在不一定是此对象的,有可能是此对象从父类继承过来的 hasOwnProperty():判读某一对象的属性是否是自身拥有的。循环和swift中的循环取出值不同 2.1 对于对象中得for ... in循环,变量是每个键值对的ke原创 2017-08-08 11:17:46 · 446 阅读 · 0 评论 -
JS学习-Map和Set
对于JS对象要求键必须是字符串,而其他的数据类型无法满足。为了解决这个问题,ES6引入了新的数据类型MapMapMap是一组键值对的结构,不仅解决了其他数据类型无法作为键值对的问题,同时提高了查找速度(是不是原先的对象本来就是可哈希的具有很快的查找速度,有待验证)。var m = new Map([[true,"A"],[2,"B"]]);alert(m.get(true));// "A"SetS原创 2017-08-08 11:38:36 · 405 阅读 · 0 评论 -
JS学习-iterable
1.1 iterable字面意思:可迭代的,可重复的 iterable是ES6标准引入的新的类型。而Array、Map和Set都属于iterable类型 1.2 为什么加入iterable类型?遍历array可以采用下标循环,遍历Map和Set无法使用下标。集合类型不统一。对于array类型的for...in循环,当添加额外的属性后,会有意外效果。因此统一集合类型iterable中的 fo原创 2017-08-08 13:01:38 · 2787 阅读 · 0 评论 -
JS学习-函数的定义和调用
函数定义JS的函数和定义和所有的高级语言类似 JS和Swift一样使用funciton关键字来定义函数function abs(x) { if (x >= 0) { return x; } else { return -x; }}函数调用2.1 JS可以传入任意和参数而不影响使用。这和编译型的语言有很大不同//如果参数多顺序取值abs(1原创 2017-08-08 13:25:49 · 408 阅读 · 0 评论 -
JS学习-方法
1.1 JS中定义对象方法//在一个方法内部,this是一个特殊变量,它始终指向当前对象,也就是xiaoming这个变量。所以,this.birth可以拿到xiaoming的birth属性。var xiaoming = { name: '小明', birth: 1990, age: function () { var y = new Date().getFu原创 2017-08-08 18:14:18 · 616 阅读 · 0 评论 -
JS学习-map()和reduce()
map()此map()是函数,非Map类型。 map()作为高阶函数,把运算的规则抽象。它是Array里的一个函数,返回一个新的数组://函数作为参数function pow(x) { return x * x;}var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64,原创 2017-08-09 10:06:14 · 546 阅读 · 0 评论 -
JS学习-闭包
函数作为返回值高阶函数除了可以接收函数作为参数外,还可以把函数作为结果返回。function lazy_sum(arr) { var sum = function () { return arr.reduce(function (x, y) { return x + y; }); } return sum;}var原创 2017-08-09 10:58:24 · 330 阅读 · 0 评论 -
JS学习-变量作用域
JS的变量作用域和其他语言的的变量作用域类似。变量提升JS函数定义有个特点:它会先扫描整个函数体语句,把所有声明的变量提升到函数顶部/*虽然是strict模式,但语句var x = 'Hello, ' + y;并不报错,原因是变量y在稍后申明了。但是alert显示Hello, undefined,说明变量y的值为undefined。这正是因为JavaScript引擎自动提升了变量y的声明,但不会提原创 2017-08-08 17:38:46 · 416 阅读 · 0 评论