javascript 学习1
1.javaScript允许对任意数据类型做比较,如boolean与number,false==0//true false === 0//false
== 比较:自动转换数据类型进行比较,很多时候得到相当诡异的结果
=== 比较:不会转换数据类型,如果数据类型一致,进行比较,如果数据类型不一致,false;
由于这个缺陷,我们在比较的时候要使用=== 比较,不要使用==比较
2.number 表示,整数,浮点数,NaN :not a number当计算结果无法使用number进行表示的时候就是NaN,infinity 无限,当计算结果超出javascript表示的时候,就会显示这个
3.NaN是个例外,他与所有的值都不相同,包括自己,NaN ===NaN //false 判断是不是NaN 只能靠函数isNaN(),我们以后尽量用Number.isNaN()函数
4,null 与undefined null 表示为空,undefined表示未定义,但是多数情况下,不用区分这两者的区别,平常我们应该用null,undefined 在判读函数参数是否传递的情况下有用
5.数组:数组没有数据类型要求,如[1,"a",NaN,true],我们可以通过索引来访问数组
6.对象:对象是一组键值对,对象的键都是字符串类型,对象的值可以是任何类型,访问对象的属性通过.属性进行访问
7.变量:变量通过=赋值,变量用var声明,变量可以多次赋值,可以不是同一种数据类型,但是var只声明一次即可
8.strict模式:var 在javascript中并不是必须声明的,但是不声明的话,javascript 就会自动声明为全局变量;所以我们在开发中应该使用strict模式,声明使用strict模式,就在我们的JavaScript代码第一行加上'use strict'
9.字符串:
1.多个字符串相连,可以用+号连接起来,跟java一样,也可以使用模板字符串,如:
var name = '小明';
var age = '18';
var message = name +age;或者 var message = `${name}${age}`;注意这里的引号是反引号,不是引号
2.字符串的一些常见操作,大体跟java类似;包括length,index,substring,toUpcase,tolowerCase
10.数组:
1.直接给array的length赋值会导致数组的大小变化,没有数据的位置补undefined
2.通过indexof来搜索指定位置的元素
3.slice 截取数组产生一个新的数组,类似于substring;如果不给slice传递任何参数,他会截取整个,我们可以利用这个特性,复制一个数组
4.push 是向数组后面添加若干元素,pop()是删除数组最后一个元素
5.unshift 向数组的头部添加一个元素,shfit 删除第一个元素
6,sort 对数组进行排序,直接调用时按照默认的进行排序
7.reverse 把数组反转
10.splice,修改数组的万能方法,如splice(2,3,‘1’,‘2’);从索引2开始删除3个元素,再添加两个,是包括前面的索引的,如前面的例子,索引2的元素是被修改了的
11.contact,将两个array拼接在一起,并返回一个新的数组。注意是返回一个新的数组;
12.join 把数组元素用指定的字符串链接起来,并返回一个新的字符串,如join('-'),
11.对象:
1.对象的键如果包括特殊字符,需要用‘’包括起来,而且访问必须用[] 来访问,所以,我们尽量命名标准的键名
2.如果访问一个不存在的属性,不会报错,会返回undefinde
3.可以自由的给对象添加和删除属性
4.可以用in判断一个对象是否拥有某项属性,但是如果该对象的父类也拥有该属性,那么用in判断会返回true;所以我们可以用hasOwnProperty()来判断
12.条件判断:
javascript 把null,0,NaN,undefined,''空字符串视为false,其他的都视为true;
13.循环:
1.var i; for(i=0;i<100;i++)
2.没有条件的循环,for(;;),用这种循环需要语句体里面有break;遇到 Invalid or unexpected token问题,竟然是因为写的代码中英文不一样导致;
3.for in 可以把一个对象的属性都遍历出来,由于array是对象,所以也能用for in 进行遍历
14.map:
初始化map :var map = new Map([key,value],[key,value]);
函数:map.set(key,value)添加 map.has(key)查询 map.get(key) 获取 map.delete(key) 删除
15.函数:
1.定义和调用;
1.JavaScript 允许传入任意个参数,多少都无关系,不会报错。。
2.arguments 只在函数中起作用,指向调用者传入的所有参数,也就是说,函数即使不定义任何参数,我们还是可以拿到调用者传进来的参数,实际上,我们用arguments判断传入参数的个数;
3.reset参数:
2.变量与作用域
1.如果一个变量在函数体内声明,他的作用域就是这个函数体,
2.函数可以嵌套,内部函数可以使用外部函数声明的变量,反之,则不行
3.javascript定义的函数有个特性,就是,函数会先扫描所有声明的变量,并提升到函数顶部,根据这一特性,我们要养成先声明所用用到变量的习惯
4.不在任何函数内定义的变量就具有全局作用域,JavaScript默认有一个全局对象,window
5.任何变量先会在函数体内查找,如果没有找到就会向上查找,只到查到window,也就是全局作用域,如果还没找到,就会报referenceError
3.名字空间
把所有的全局变量或者顶层函数都放到window里面很容易造成命名冲突而且不容易被发现,所以一个办法就是把自己定义的全局变量和顶层函数都放到一个变量里面,比较著名的JavaScript库都是这么干的
4.局部作用域:如我们用循环所需的变量,就是局部,在es6中,用let代替var声明块级变量
5.常量:在es6之前,我们只能变量名大写来表示这是一个常量,不要去修改,在es6中,我们可以用const来声明常量
6.解构赋值
3.高阶函数:
map:对每个元素进行加工
reduce:对两个元素进行加工,这个两个元素中的第一个元素是前面加工后的元素
filter :筛选出元素,参数为函数,函数返回true,保留,返回false,筛选掉
sort:排序,跟java中的compator类似
4.闭包:函数中定义函数,然后函数延迟执行,用来对标类里面的成员变量
5.generator:yeild 暂停函数,
16.标准对象:
1.Date 获取事件对象
2.RegExp 正则
3.Json
17.对象:
1.定义一个对象跟声明一个函数没有差别,但是调用的时候,函数是直接调用,对象需要使用new 构造函数,为了区分二者,在命名的时候一般情况下,对象首字母大写,函数首字母小写
2.我们可以创建一个createObj函数,这样我就不用new了,而且参数也是比较随便的
3.在es6中对象的写法跟java类似,继承的关键字是extends
javascript 学习1的更多相关文章
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”
Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...
- JavaScript学习(3):函数式编程
在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...
- JavaScript学习(2):对象、集合以及错误处理
在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...
- JavaScript学习13 JavaScript中的继承
JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- JavaScript学习11 数组排序实例
JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- JavaScript学习09 函数本质及Function对象深入探索
JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...
- JavaScript学习08 Cookie对象
JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...
随机推荐
- Selenium的自我总结2_元素基本操作
对于Selenium的基本元素的操作,就自己的了解做了一个基本的介绍,这篇直接上代码,针对一个页面如何操作写了些基本的操作脚本,希望对初学者有一定的帮助,也希望通过这些总结让自己有一些清晰的认识和了解 ...
- [kali] 安装完kali之后允许远程ssh
1. 安装kali 2.控制台登录kali 3. 修改 /etc/ssh/sshd_config 4.将 permitrootlogin 前面的注释去掉,并且后面改为yes 5.然后重启ssd服务 / ...
- GS使用HTTPS登录的设置过程
1. Windows 增加角色服务 服务器配置管理器, 添加角色服务 增加角色功能里面有: 证书颁发机构 证书颁发机构 web注册 2. AD CS配置 主要是next操作 独立ca 根证书 等 3. ...
- [安全]appscan 使用代理抓取其他客户端的请求
自己安全测试技能很低, 上级给的安全测试的任务给了自动化组的同事来做, 自己之前使用appscan的时候 只知道使用appscan的内置浏览器测试抓取请求 今天与自动化美女同事沟通发现有一个代理的功能 ...
- Python 爬虫 --- urllib
对于互联网数据,Python 有很多处理网络协议的工具,urllib 是很常用的一种. 一.urllib.request,request 可以很方便的抓取 URL 内容. urllib.request ...
- ionic3.x开发小坑记录(一)
自定义font的时候,在assets中创建的文件夹名字别用fonts,会与ionic默认样式冲突,在浏览器中调试是正常的,到手机上就出问题了. 在html中写img的src直接如图 assets前面 ...
- fasterxml.jackson 将对象转换为json报错处理
最近在做查询的数据遇到如下报错: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found ...
- SpringBoot(十六)_springboot整合JasperReport6.6.0
现在项目上要求实现套打,结果公司里有个人建议用JaperReport进行实现,就进入这个东西的坑中.好歹经过挣扎现在已经脱离此坑中.现在我也是仅能实现读取数据库数据转成pdf进行展示,包括中文的展示. ...
- React learn path
React learn path The Road to learn React https://github.com/the-road-to-learn-react https://roadtore ...
- Enum 扩展
项目中,用到枚举值,并且增加中英文描述. 一般的[Description]属性,无法满足中英文,所以进行了简单扩展. 继承DescriptionAttribute,增加了英文描述description ...