该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容。
- 语句
- 注释
- 输出
- 字面量
- 变量
- 数据类型
- typeof/constructor属性
- 类型转换
- 关键字
- 运算符
- 字符集
- 对象
- 函数
- Arguments 对象
- 作用域/变量的生命周期
- 变量提升
- 严格模式 use strict
- 正则表达式
- 阻止默认操作
- 停止冒泡
语句
分号(;)
代码块
条件语句:if...else... switch
循环语句:for for/in while do/while
break; continue; break与continue的区别
注释
//
/* */
输出
window.alert();
document.write();
innerHTML;
console.log();
字面量
变量
存储数据的容器
以'字母','$', '_' 开头,由 ‘字母','$', '_', '数字' 组成
大小写敏感
重新声明JavaScript变量,该变量的值不会丢失。eg: var carname="Volvo"; var carname;//变量carname的值依然是“Volvo”
数据类型
基本数据类型(原始数据类型)5种:string, number, boolean, null, undefined
非基本数据类型(引用类型):Array, Object, Function, 原始数据类型对应的对象 eg: var s = new String();
JavaScript拥有动态类型,相同的变量可用作不同的类型
typeof/constructor属性
typeof操作符:检测变量的数据类型
typeof [1,2,3,4]; //object
typeof null; //object
var person = null; //值为空,类型为对象
var person = undefined; //值为undefined,类型为undefined
type function () {}; //function
null 表示空对象引用;
undefined表示没有设置值的变量;
constructor属性
[1,2,3,4].constructor //返回函数 Array() {[native code]}
new Date().constructor //返回函数 Date() {[native code]}
function () {}.constructor //返回函数 Function () {[native code]}
{name:'John',age:34}.constructor //返回函数 Object() {[native code]}
类型转换
5种不同的数据类型:string, number,boolean,object,function
3种对象类型:Object, Date, Array
2个不包含任何值的数据类型:null, undefined
通过javascript函数转换数据类型
1.数字转成字符串: String(123); 123.toString();
2.布尔值转换成字符串:String(false); false.toString();
3.日期转成字符串:String(Date()); Date().toString();
4.字符串转成数字:Number("3.14");//返回3.14 Number(99 80);//返回NaN
ParseFloat();//解析字符串,返回一个浮点数
ParseInt();//解析字符串,返回一个整数
“ + ”可以将变量转换成数字
5.布尔值转成数字:Number(false);//0
6.日期转成数字:var d = new Date();
Number(d);
d.getTime();
通过javascript自身自动转换
1.当javascript尝试操作一个“错误”的数据类型时,会自动转换为“正确”的数据类型。
2.当你尝试输出一个对象或一个变量时,javascript会自动调用toString()方法。
关键字
运算符
算数运算符: +, -, *, /, %, ++, --
赋值运算符:=, +=, -=, *=, /=, %=
比较运算符:==, ===, !=, !==, >, <, >=, <=
逻辑运算符:&&, ||, !
条件运算符:? :
字符集
unicode
对象
javascript对象是拥有属性和方法的数据。
对象是变量的容器,是键值对的容器。
访问对象属性的两种方式:eg: person.lastName; person["lastName"];
定义对象的方法:
1.工厂方式; 2.构造器函数; 3.原型方式; 4.混合方式(构造函数+原型方式);
5.动态原型方式; 6.混合工厂方式。
函数
JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
调用带参数的函数。
带有返回值的函数,return 语句可以实现。
函数声明:function functionName(parameters){ /*执行的代码*/}
函数声明后不会立即执行,会在我们需要的时候调用到
函数表达式:var x = function (a,b){ return a*b;} var z = x(3,4);//12
以上函数实际上是一个匿名函数。
Function()构造函数:var myFun = new Function("a", "b", "return a*b");
函数提升:函数可以在声明之前调用。使用表达式定义的函数无法提升。
自调用函数:函数表达式可以“自调用”。eg: (function (){var x = "Hello";})();
函数可作为一个值使用
typeof function(){};//function
隐式参数/显示参数
arguments:arguments.length;
通过值传递参数:隐式参数的改变在函数外是不可见的。
通过对象传递参数:在函数内部修改对象的属性会修改其初始值。
toString()方法
函数的调用:有4种调用方式,每种方式的不同之处在于this的变化。
1.作为一个函数调用:函数不属于任何对象,默认为window对象的函数,this为全局对象window。
2.函数作为方法调用:把函数定义为对象的方法,函数作为对象方法调用,this的值成为对象本身。
3.使用构造函数调用函数:使用new关键字,创建新的对象,新对象继承构造函数的属性和方法,
this的值在函数调用时实例化对象(new object)时创建。
4.作为函数方法调用函数:函数是对象,有它的属性和方法,call方法和apply方法,第一个参数成为this
eg: function myFunction(a,b){return a*b;}
myObject = myFunction.call(myObject,10,2); //返回20
myObject = myFunction.apply(myObject,[10,2]); //返回20
Arguments对象
javascript函数的内置对象,包含了函数调用的参数数组。
作用域/变量的生命周期
局部作用域,函数执行完毕后销毁
全局作用域,页面关闭后销毁
全局和局部变量即便名称相同,它们也是两个不同的变量。修改其中一个,不会影响另一个的值。
变量提升
javascript中,函数及变量的声明都将提升到函数的最顶部。(声明提升,初始化不提升。)
严格模式 use strict
"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。它是一个字面量表达式,会在旧版本中忽略。
严格模式下,不能使用未声明的变量。
Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
严格模式新增了一些保留关键字:
implements, interface, let, package, private, protected, public, static, yield.
正则表达式
文本搜索/文本替换
String对象的方法:
search(); 用法:str.search(/Runoob/i);
replace(); 用法:str.replace(/a/i,"RR");
split(); 用法:
match(); 用法:str.match("word"); 查找字符串中特定的字符,找到的话,返回这个字符;未找到,返回null。
RegExp对象的方法:
compile(); 用法: 编译正则表达式
exec(); 用法:pattern.exec(str); 检索字符串中的指定值。找到,返回,找到的值;未找到,返回 null。
test(); 用法:pattern.test(str); 搜索字符串指定的值,根据结果并返回真或假。
修饰符:
i;不区分大小写 g;全局匹配 m;多行匹配
量词:
n?;0个或1个n
n+;至少一个n
n*;0个或多个
n{X} ; X个n
n{X,Y} ; 至少X个n,至多Y个n
n{X,} ; 至少X个n
n$; 以n结尾
^n; 以n开头
?=n; 任何其后紧接n的字符串
?!n; 任何其后不紧接n的字符串
方括号:
[abc];查找方括号之间的任何字符
[^abc];查找任何不在方括号之间的字符
[a-z0-9];查找给定集合内的任何字符
[green|red|blue];查找任何指定的选项
元字符:
. \w \W \d \D \s \S \b \B \0 \n \f \r \t \v \uxxx \xdd \xxx
阻止默认操作
preventDefault();
停止冒泡
stopPropagation();
(本文属个人总结,后期会持续更新,欢迎大家与我共同探讨...)
- javascript必须知道的知识要点(二)
该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象 ...
- javascript的面向对象思想知识要点
获取数据类型 typeof undefined:访问某个不存在的或未经赋值的变量时就会得到一个 undefined,用typeof 获取类型,得到的也是undefined;null:它不能通过java ...
- CentOs7下systemd管理知识要点
centOs7的一个巨大的变动就是用systemd取代了原来的System V init.systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/system ...
- 《JavaScript》 程序基本知识 数据类型。 {0912上} {0912下}
JS脚本语言: 这是JaxaScript的全称名 JS是网页里面使用的脚本语言 JS是一个非常强大的语言 JS的基础语法 注释语法: 单行注释 // 多行注释 /**/ 输出语法: 双标 ...
- [CISCO] 转载:冲突域与广播域(区别、知识要点)
[CISCO] 转载:冲突域与广播域(区别.知识要点) 1.传统以太网操作(Ethernet Connection Ethernet) 传统共享式以太网的典型代表是总线型以太网.在这种类型的以太网中, ...
- SDR软件无线电知识要点(三)EVM
SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...
- SDR软件无线电知识要点(一)噪声系数与噪声因子
SDR软件无线电知识要点(一)噪声系数与噪声因子 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) ...
- RIP 知识要点
RIP知识要点: UDP:520 版本:v1(广播包更新) / v2(组播更新 224.0.0.9 ) 度量值:跳数(最多跳15跳,路由为16跳时路由不可达) =================== ...
- javascript之正则表达式基础知识小结
javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...
随机推荐
- 使用T-sql建库建表建约束
为什么要使用sql语句建库建表? 现在假设这样一个场景,公司的项目经过测试没问题后需要在客户的实际环境中进行演示,那就需要对数据进行移植,现在问题来了:客户的数据库版本和公司开发阶段使用的数据库不兼容 ...
- JavaScript图片轮播,举一反三
图片轮播,在一些购物网站上运用的不胜枚举,下面简单介绍一下图片轮播的实现. 如图 <!doctype html> <html lang="en"> < ...
- SLAM:飞行机器人的参数解析-分类
在水电站存在的山区,公路运输效率极低,盘山公路绕行消耗大量时间,使用飞行机器人进行运输是合适的选择. 实现一位长辈在山区飞行的愿望,任重而道远 常见飞行机器人的参数解析:解读飞行机器人的基本类型及技术 ...
- PCL:描述三维离散点的ROPS特征(Code)
前言: 三维点云为三维欧式空间点的集合.对点云的形状描述若使用局部特征,则可分为两种:固定世界坐标系的局部描述和寻找局部主方向的局部描述,ROPS特征为寻找局部主方向的特征描述. 1.寻找主方向(对X ...
- msmq消息队列使用场景
MSMQ全称是Microsoft Message Queue——微软消息队列. MSMQ是一种通信的机制,因为是一种中间件技术,所以它能够支持多种类型的语言开发,同时也是跨平台的通信机制,也就是说MQ ...
- 如何查看Linux的CPU负载
哪些工具可以查看 CPU 负载? 可以使用 top 命令.uptime 命令,特别是 top 命令,功能强大,不仅仅可以用来查看 CPU 负载. CPU 负载怎么理解?是不是 CPU 利用率? 要区别 ...
- charles修改下行参数
1.charles抓包修改下行参数: 想要修改的手机展示展示信息页: 2.charle设置断点,在请求接口上一个上设置断点 菜单proxy->Breadkpoints Settings设置打开断 ...
- appium滑动
在app应用日常使用过程中,会经常用到在屏幕滑动操作.如刷朋友圈上下滑操作.浏览图片左右滑动操作等.在自动化脚本该如何实现这些操作呢? 在Appium中模拟用户滑动操作需要使用swipe方法,该方法定 ...
- 34.初识搜索引擎及timeout机制
主要知识点 1.对搜索执行结果的说明 2.timeout机制讲解 一.对执行 GET /_search 的结果的说明 执行结果如下(只保留部分) { "took": 29, &qu ...
- hdu 1250 简单大整数加法
#include<stdio.h> #include<string.h> #define N 3100 int a[N],b[N],c[N],d[N],e[N]; int ma ...