1.您只能在 HTML 输出流中使用 document.write 如果在文档已加载后使用它(比如在函数中),会覆盖整个文档

2.数组 : [40, 100, 1, 5, 25, 10] <====>对象名 : {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue", showName:function(name)  {alert("我的名字"+ name);}}

3.使用反斜杠'\'对代码进行折行,'\'不能在代码连接处使用(比如方法名和小括号中间, 还有".")

4.没有声明值的变量值为undifined, js中重新声明变量,变量值不会丢(第二次不赋值)

5.基本类型(值类型) : String, Number, Boolean, Null, Undifined, Symbol

复杂数据类型 : Object

  Symbol :  let prop = Symbol("这里是discribe"),   Symbol表示独一无二的值,不能通过new来创建.

 创建数组方式 : var cars=new Array() =>var cars=new Array("Saab","Volvo","BMW")=>var cars=["Saab","Volvo","BMW"];

属性的两种寻址方式 :  name=person.lastname;  <===>  name=person["lastname"];

 Undefined 这个值表示变量不含有值。可以通过将变量的值设置为 null 来清空变量

    创建对象的方式 : var 方法名 = {name:"张三", demoMethod:function(){alert("This is a Method...");}}

 给对象新增属性 : 直接增加即可 ===> 方法名.age = 18;

 str = 方法名.demoMethod, 用访问属性的方式访问对象方法(即方法去掉()小括号),会以字符串的形式返回方法名对应的整段代码

 可以在对象内定义方法,方法作为对象的属性来储存,   

 也可以在直接定义函数(不在对象内) ==> function showName() { ......;}

 方法可以赋值给变量 ==> var method = function() {.......;}

6.局部变量 : 在函数运行以后被删除

全局变量 : 在函数外声明的变量是全局变量, 会在页面关闭后被删除

 carname="Volvo"  =>把值赋给未声明的变量(缺了var),该变量会自动变成window的一个属性,是可配置属性,可以删除掉.

 delete var1 ==> var声明过的变量不可以删除.

 在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象

7.字符串

  var character = carname[7]  ==>可以使用索引位置访问字符串的某个字符.索引从0开始

  carname.length ==>可以使用内置属性 length 来计算字符串的长度

  var y = "He is called \"Johnny\"";  ==>可以使用反斜杠来在字符串内使用引号.

  字符串可以创建为对象,但是 ==>var x = "John"; >> var y = new String("John"); >> (x === y) // 结果为 false,因为 x 是字符串,y 是对象

  字符串属性和方法,查阅菜鸟教程

8.比较运算符 : 不绝对等于(值和类型有一个不相等,或两个都不相等)   ===>  !==

9.for...in循环   for (x in person) {......;}

  switch语句的case使用的是恒等计算符(===),所以要注意数据类型的匹配!

10.js标签  <-- lable : 语句 -->  或者 <-- lable : {代码块} -->

  可以用break跳出js代码块.    ==> break lableDemo;

  continue不管加不加标签,都只能用在循环中.

11. typeof操作符

  typeof 数组 的返回类型是Object , 在JavaScript中,数组是一种特殊的对象类型

  typeof null; 返回Object;  ==> null是一个只有一个值的特殊类型。表示一个空对象引用

  typeof method1(); 返回function

  typeof undifined; 返回undifined

12.null和undifined的区别

  undifined : 是所有没有赋值变量的默认值,自动赋值

  null : 主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址

  undifined==null;   true

  undifined===null;  false   ==>undifined和null值相等,类型不相等

  undefined 是一个没有设置值的变量

  null是一个只有一个值的特殊类型。表示一个空对象引用

13.  Array和Date无法通过typeof来判断数据类型,因为都是 返回 object

  ==>可以使用constructor 属性来获取他们的构造函数,从而知道确切的类型

14.全局方法String()可以把其他类型转换为字符串,还有toString()方法

  全局方法Number()可以把字符串转换为数字,其他的转换为NaN

  一元运算符+ (加号) 可以把字符串转换成数字, x = + "123"; 不是数字的转换成NaN

15.JavaScript的自动转换类型情况比较多,查阅 : http://www.runoob.com/js/js-type-conversion.html 最下边的表格

16.正则表达式

  正则表达式通常应用于两个String方法,search()  <--返回字符串中匹配的字符串开始的index-->和replace() <--替换字符串中的某些字符串-->

  更多内容请搜索 : 正则表达式 自行查看

17.try, catch, finally, throw

  throw允许我们自定义异常.  ==>  if(x < 5) throw "太小";  throw的字符串信息会被catch语句捕捉到

18. 调试   debugger; 该语句相当于断点,在F12开发者工具中可以调试代码

19. 变量提升 : 即使变量先使用后声明,也不会出错,因为解释器会悄悄地把声明语句提升到前边

      如果是初始化过的变量,则不会触发变量提升

20.严格模式 : "use strict"

  "use strict"只允许出现在脚本或函数的开头,在函数中的"use strict"是局部作用域

  严格模式限制:不允许使用未声明的变量,不允许删除变量或对象等等(对象的属性可以删除 delete 属性名;).具体内容 : http://www.runoob.com/js/js-strict.html

21.JavaScript 中的所有数字都是以 64 位浮点型数据(float) 来存储

  所以精确度都很难确定,比如0.1+0.2 != 0.3 可以用乘除法(整体放大缩小)来解决 : (0.1*10 + 0.2*10)/10 == 0.3

22.HTML表单自动验证(无需js),在input标签内加上required="required"属性即可,如果为空则阻止提交表单

  数据验证分为 : 客户端数据验证 和 服务器端数据验证

  约束验证HTML输入属性 : disabled, max, min, pattern, required, type

  比如pattern属性 ==>  <input pattern="[A-z]{3}">

23. 约束验证相关内容查看 : http://www.runoob.com/js/js-validation-api.html  (约束验证DOM方法,DOM属性,Validaty属性,checkValidaty()等等)

24. This : 表示对当前对象的引用

  在方法中,this 表示该方法所属的对象

  如果单独使用,this 表示全局对象

  在函数中,this 表示全局对象

  在函数中,在严格模式下,this 是未定义的(undefined)

  在事件中,this 表示接收事件的元素

  类似 call() 和 apply() 方法可以将 this 引用到任何对象

  方法==>对象调用的是方法     函数==>直接调用的是函数

  关于apply(), call(), bind()  ===>http://www.cnblogs.com/moqiutao/p/7371988.html

25. let 和const

  ES6之前,js只有两种作用域:(局部变量||全局变量),而ES6新增的let和const的作用域则是(块级变量||全局变量)

  在 JavaScript 中, 全局作用域是针对 JavaScript 环境

  在 HTML 中, 全局作用域是针对 window 对象

  var==>   1).代码块中声明的变量也是全局变量

      2).声明的变量属于window,可以使用 window.carName 访问变量

      3).var变量可以重复声明,也可以先使用后声明.

  let==>  1).代码块中声明的变量为块级作用域

      2).声明的变量属于js环境,不能先使用后声明

      3).不可重复声明,不可先使用后声明,不能和var在相同作用域声明相同变量名

  const==>  1).123同let 

         2).声明的是"常量",但并非是真正的常量,用const声明的对象,可以修改属性,声明的数组,可以修改元素.但都不能重新给对象赋值.

26. JSON

  JSON 通常用于服务端向网页传递数据,是一种轻量级的数据交换格式,JSON是独立的语言

  JSON对象 : {"name":"Runoob", "url":"www.runoob.com"}  简单的json对象

         { "sites" : [{"name":"Runoob", "url":"www.runoob.com"}, {"name":"Runoob", "url":"www.runoob.com"}] }   复合型的json对象.

        [  ] 用来保存数组,[  ]外边不用加引号.  {  }用来保存对象

  JSON字符串转换为JS对象  ==>  使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象

  把JSON字符串作为参数传入JSON.parse(str),即可返回JS对象.

  相对的,JSON.stringify(JS对象), 可以把js对象转换为JSON字符串.

  ==>注意区分JSON对象和JSON字符串!

27.javascript:void(0)   :  void()的小括号里可以跑代码,但是javascript:void()不返回任何值

  <a href="javascript:void(0)">单击此处什么也不会发生</a>

  <a href="javascript:void(alert('Warning!!!'))">点我!</a> ==>点击后会弹出alert框

  href="#"与href="javascript:void(0)"的区别 :

    href="#"是指链接到当前页面, href="#pictures",是指定位到id=pictures的节点位置

    javascript:void(0), 仅仅表示一个死链,如果你要定义一个死链接请使用 javascript:void(0)

JavaScript学习备忘的更多相关文章

  1. Android学习备忘笺01Activity

    01.设置视图 在Android Studio新建的项目中,通过 setContentView(R.layout.activity_main);方法将res/layout/activity_main. ...

  2. leaflet 学习备忘

    leaflet 开源js地图工具.非常好用. leaflet参考:http://leafletjs.com/ 特性: 完全开源,可以基于不同的第三方瓦片生成地图. 基于原始GPS,无需转换 可创建离线 ...

  3. UML学习备忘

    两大类UML图: 行为图(behavior diagrams)和结构图(structure diagrams)     行为图将引导系统分析员分析且理清"系统该做些什么"?系统分析 ...

  4. Git学习备忘

    本文参考廖雪峰写的精彩的git学习文档,大家可以直接去官网看原版,我这里只是便于自己记录梳理 原版地址:http://www.liaoxuefeng.com/wiki/0013739516305929 ...

  5. javascript实例备忘

    一,javascript动态显示: 如显示效果上图所示: 如图显示鼠标放在百度谷歌等字样上市动态显示其内容明细:代码如下:<head><title></title> ...

  6. MVC4 学习备忘

    WebConfig文件里添加数据库链接字符: <add name="MovieDBContext(可以自己取字符串名字)" connectionString="Da ...

  7. jQuery学习备忘

    jQuery对象转换成DOM对象 var #cr = $("#cr"); //jQuery对象 var cr = $cf[0]; //DOM对象 alert(cr.checked) ...

  8. 一滴一点vim(学习+备忘)

    普通模式: h j k l 分别是左下上右方式移动: :w 保存修改 :q 推出 :wq 保存修改并退出 :q! 放弃修改强制推出 x 删除光标所在位置字符 i 在光标所以位置插入字符 删除类命令: ...

  9. selenium学习备忘

    在做web项目的自动化端到端测试时主要使用的是Selenium WebDriver来驱动浏览器.Selenium WebDriver的优点是支持的语言多,支持的浏览器多.主流的浏览器Chrome.Fi ...

随机推荐

  1. EmpireCMS_V7.5的一次审计

    i春秋作家:Qclover 原文来自:EmpireCMS_V7.5的一次审计 EmpireCMS_V7.5的一次审计 1概述    最近在做审计和WAF规则的编写,在CNVD和CNNVD等漏洞平台寻找 ...

  2. 1分钟快速制作漂亮的H5本地记事本

    大家好,以前给大家分享过一个五步骤制作精美的HTML5时钟的文章,点击回顾<五步教你制作漂亮精致的HTML时钟>,还有<一分钟教你如何实现唯美的文字描边>:今天给大家分享一个用 ...

  3. 知乎十万级容器规模的Java分布式镜像仓库实践

    作者:知乎令孤无忌 前言 知乎在 2016 年已经完成了全量业务的容器化,并在自研容器平台上以原生镜像的方式部署和运行,并在后续陆续实施了 CI.Cron.Kafka.HAProxy.HBase.Tw ...

  4. Java中线程同步锁和互斥锁有啥区别?看完你还是一脸懵逼?

    首先不要钻概念牛角尖,这样没意义. 也许java语法层面包装成了sycnchronized或者明确的XXXLock,但是底层都是一样的.无非就是哪种写起来方便而已. 锁就是锁而已,避免多个线程对同一个 ...

  5. feign包名路径添加问题

    1. feign包名路径添加问题 1.1. 问题 在SpringCloud中使用feign调用路径中,不能在类上直接添加@RequestMapping(value = "/hospital- ...

  6. python读取并写入csv文件

    在ubuntu下,新建.csv文件的方法是使用LibreOffice来创建一个数据表,然后我们把表格存储为.csv的格式: “Save as”菜单把我们的表格存为一个CSV的文件格式:命名为csvDa ...

  7. Python - 搭建Jupyter notebook环境

    1- Jupyter简介 HomePage:https://jupyter.org/ 安装指南:https://jupyter.org/install.html 官方文档:https://jupyte ...

  8. 安卓Listview和Adapter数据设计

    ListView是一种用于垂直显示的列表控件,如果显示内容过多,则会自动出现垂直滚动条,每一行是一个View对象,在每一行上可以放置任何组件,Adapter适配器是数据和UI的桥梁,为数据显示提供了统 ...

  9. [P4721] 分治 FFT

    「题意」给定\(g[0]=1\),\(g[1~n-1]\)求序列\(f[i]=\sum_{j=1}^i f[i-j]*g[j]\ , i\in[1,n-1],f[0]=1\). 「分析」分治处理区间[ ...

  10. 短视频 SDK 6大功能技术实现方式详解

    第三方短视频解决方案作为快速切入短视频行业的首选方式,选择一款功能齐全.性能优异的短视频解决方案十分重要. 今天我们来谈谈短视频 SDK 6大重要功能点及其技术实现方式. 短视频拍摄 断点续拍 指在拍 ...