1.关于JS:
(1)脚本语言——不需要编译的语言(常见有cmd,t-sql)----解释性语言;
(2)动态类型的语言——1.代码只有执行到那个位置才知道那个变量中存储的是什么 2.对象中没有某个属性或方法时可以通过点语法来添加;
(3)弱类型语言——都是通过var来声明;
(4)基于对象的语言——并非面向对象的语言,而是基于对象,即它本身有对象,不需要创建,可直接拿来使用,可模拟面向对象的思想。

2.JS的组成:
(1)ECMAscript——JavaScript的一个标准;
(2)DOM——文档对象模型;
(3)BOM——浏览器对象模型。

3.JS的几个基本概念:
(1)变量:用于存储数据;
eg. var name; 声明变量
var name="zhang"; 初始化

(2)数据类型:
[1]Number——数字类型;
[2]String——字符串类型;
获取字符串长度:变量名.length;
*隐式转换——浏览器自动将字符串转成数字;eg. var str1="10"; var str2=12;(只有+不会计算,其他的都会将字符串转为数字进行计算);

[3]Boolean——布尔类型;
[4]Null;
[5]Undefined;
[6]Object——对象;
**总结:js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。
***注意:
1.var m=Null;此时m的数据类型为对象;若String(m);则m为null类型;???
2.isNaN(变量名)——判断是否为数字。
3.获取变量的数据类型用typeof;
(3)类型转换:
[1]parseInt();转整数;
*10a——10;a10——第一个数不是数字不能转换;1a0——1;
[2]parseFloat();转小数;
***用Number();比上面两种方法更严格;
[3]toString();字符串类型;
[4]Boolean();布尔类型;
(4)运算符:
[1]算数运算符(+-*/);
[2]一元运算符(++ --)——只需一个数;
[3]二元运算符——两个操作数;
[4]三元运算符——三个操作数;
[5]复合运算符(+= -= *= /= %=);
[6]关系运算符(> < >= <= == ===(严格的等于) != !==);
[7]逻辑运算符(&& ||);
**()的优先级最高。
(5)流程控制——代码的执行过程
三种方式:
[1]控制结构(从上往下,从左往右);
[2]分支结构(if if-else switch-case 三元表达式);
[3]循环结构(while do-while for for-in);
**总结:大多数时候用if-else的语句都可以用三元表达式来表示。
(6)数组:一组有序的数据(作用:一次性存储多个数据);
声明:
[1]通过构造函数创建数组:var 变量名=new Array();
[2]通过字面量的方式创建数组:var 变量名=[];
(7)函数——把重复代码封装起来,需要的时候直接调用即可。(作用:实现代码的重用)。
语法:
function 函数名(形参){
函数体
}
调用:函数名(实参);
**注意:函数名:直接输出函数名,为定义的代码。

arguments对象伪数组
arguments.length:获取函数调用时,传入了几个参数。
arguments[i]:获取传入的每个参数的值。

命名函数:函数有名字,可通过函数名直接调用。(重名时,后面的会将前面的覆盖掉)。
匿名函数:函数没有名字,不能直接调用。
函数表达式:把一个函数给一个变量,形成函数表达式(变量中存储的函数,这个变量就相当于一个函数)
eg. var s=function (){};
回调函数:函数作为参数使用,这个参数就是回调函数。
eg. function f1(){
return function (){
console.log("1234");
}
}
var m=f1();此时返回的是f1中的那个函数,那么就是一个函数
m();这样就调用了返回的那个函数。

作用域:
***注意:除了函数中定义的变量,只要用var全都是全局变量,不带var的变量(为隐式全局变量),即使在函数中定义,在外面也能使用。

预解析:提前解析代码——把变量/函数的声明提前到当前所在作用域的最上面。
eg. console.log(num);
var num=10;结果为undefined——var num;被提到最前面了

(8)创建对象的方法
[1]调用系统的构造函数创建对象
var obj=new Object();——实例化对象
obj.name="z";——添加属性
obj.eat=function(){};——添加方法
[2]自定义构造函数创建对象
function 函数名(){}
var obj=new 函数名();
[3]字面量的方式创建对象
var obj={name:"a",age:22,f1:function (){}};

(9)JSON格式的数据——以键值对的形式出现
JSON也是一个对象
var js={"name"="z","age"="22"};
遍历这个对象要用for-in循环
即 for( var key in js){ //key是一个变量,存储的是该对象所有属性的名字
console.log(key+js[key]); //js[key]获取的是属性值——不能用js.key,这相当于往对象中添加一个key属性
}
(10)类型传递
值类型的值存储在栈中——传递的是值,即复制一份值;
引用类型:对象存储在堆上,地址存储在栈中——传递的是地址。
(11)JS的三种对象
[1]内置对象——Math; Date; String; Array;
[2]自定义对象
[3]浏览器对象

JavaScript基础学习笔记整理的更多相关文章

  1. JavaScript基础 学习笔记

    参考资料 视频链接:https://www.bilibili.com/video/BV1Sy4y1C7ha?spm_id_from=333.999.0.0 菜鸟教程:https://www.runoo ...

  2. Javascript基础学习笔记

    什么是变量?变量是用于存储信息的容器变量的声明语法: var 变量名 变量名 = 值;变量要先声明再赋值变量可以重复赋值变量的命名规则变量必须以字母开头:变量也能以$和_符号开头(不过我们不推荐这么做 ...

  3. javaScript 基础学习笔记

    边看视频和书记得有点杂. 1.插入JS标签 一种是在文档中插入<script></script>标签.另一种是把javaScript代码放在.js文件中.放在head中如. & ...

  4. WPF基础学习笔记整理 (九) 资源

    基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictio ...

  5. WPF基础学习笔记整理 (八) 命令

    基础知识: 命令是应用程序的任务,并跟踪任务是否能够被执行. 命令不包含执行应用程序任务的代码. 命令是比事件更高级的元素.默认的命令目标是当前获得焦点的元素. 良好的Win应用程序,应用程序逻辑不应 ...

  6. WPF基础学习笔记整理 (七) Binding绑定

    基础知识: 数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性:目标对象始终是依赖属性,而源对象则可以是任何内容. BindingOperations类,提供静态 ...

  7. WPF基础学习笔记整理 (六) RoutedEvent路由事件

    基础知识: 传统的事件模型中,会在消息触发时将消息通过事件传给事件的订阅者(显式的事件订阅),事件订阅者使用事件处理程序来做出响应.事件订阅者必须能够直接访问到事件的宿主(拥有者). 路由事件的事件的 ...

  8. WPF基础学习笔记整理 (五) DependencyObject & DependencyProperty

    参考资料: 1.http://www.cnblogs.com/Zhouyongh/archive/2009/10/20/1586278.html 基础知识: DependencyObject & ...

  9. WPF基础学习笔记整理 (二) XAML

    基础知识: XAML:Extensible Application Markup Language, zammel: 用于实例化.NET对象的标记语言: XMAL使用树形逻辑结构描述UI: BAML: ...

随机推荐

  1. Python设计模式 - UML - 状态图(State Machine Diagram)

    简介 状态图主要用于描述对象在其生命周期中各种状态.状态之间的转换过程.触发状态转换的各种事件(条件)及执行的动作. 状态图构建步骤 - 找出适合用状态图描述的类.确定类中需要做状态图的重要对象 - ...

  2. 微信小程序超出两行省略号

    display: -webkit-box; overflow: hidden; text-overflow: ellipsis; word-wrap: break-word; white-space: ...

  3. Hillstone防火墙sslvpn配置与使用

    1.山石的sslvpn称为Secure Connect VPN,即scvpn. 2.WEB界面登陆防火墙,“用户”,“AAA服务器”,新建用户: 3.定义源IP池 即用户通过sslvpn拨号成功后获取 ...

  4. python—集合

    ps:非空即真,非0即真(空,0都返回False) pwd=input('pwd:').strip() if pwd: #三种判断为空的方法(直接判断就可以) # if pwd!='': # if l ...

  5. spring的事务操作(重点)

    这篇文章一起来回顾复习下spring的事务操作.事务是spring的重点, 也是面试的必问知识点之一. 说来这次面试期间,也问到了我,由于平时用到的比较少,也没有关注过这一块的东西,所以回答的不是特别 ...

  6. 项目中的Launch_getSecurityEntitle_postlaunch

    研究透彻这个launch和postlaunch的执行过程才能改进他: //AppVTTicket.js ,launch:function(){ Ticketing.inciTick={}; this. ...

  7. 使用 python 操作 mongodb 常用的操作

    pymongo 的安装命令 pip install pymongo. import pymongo 数据库及集合查询(创建) 连接数据库 查询数据库中的数据库 查询数据库中的集合 创建数据库和集合只需 ...

  8. Spring in Action 第一章 Spring之旅

    1.1 简化Java开发 1.1.2 依赖注入(DI) 松耦合:如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能在对象本身毫不知情的情况下,用不同的具体实现进行替代 ...

  9. linux jdk 环境变量

    一.jdk的安装 1.下载 jdk-7u79-linux-i586.tar.gz 2.tar -zxvf jdk-7u79-linux-i586.tar.gz  解压 3.mv jdk1.7.0_79 ...

  10. pl/sql调试存储过程

    1.找到对应的存储过程 2.在存储过程名称上右键,选择Test 3.点击1标识的按钮(begin debugger),选择2开始调试 4.存储过程如需参数,需要在右侧下方的表格区域(3)填入对应的值即 ...