js学习——基础知识
2017-06-20 00:13
447 查看
数据类型
函数、方法
变量作用域
运算符
条件语句
break和continue
typeof
错误(异常)
变量提升
严格模式
JSON
void(0)
JavaScript
数据类型
js有动态类型,也就是相同的变量可用作不同类型(python也是)
函数、方法
函数中return默认是最后一行,即使没有分号(return)也会默认结束函数。
变量作用域
运算符大部分与C++类似
条件语句与C++类似
break和continue与C++类似
continue只能用于循环
break;只能用于循环或switch break 标签引用; 可用于退出任意代码块
typeof 获取变量类型
错误(异常)
变量提升
1. 函数及变量的声明会被自动提升到最上面(声明会自动变成在代码最上面)
2. 初始化不会自动提升(var x = 5;这个语句的位置不会自动变化)
严格模式
该模式下对代码有一定要求。通过把"user strict"写在脚本或函数头部来使用严格模式。
JSON: JavaScript Object Notation
一种轻量级的数据交换格式,用于存储和传输数据的格式,通常用于服务端向网页传递数据 。
语法规则: 数据为 键/值 对。数据由逗号分隔。大括号保存对象。方括号保存数组
3 条网站信息(对象)的数组
{"sites":[ {"name":"Runoob", "url":"www.runoob.com"}, {"name":"Google", "url":"www.google.com"}, {"name":"Taobao", "url":"www.taobao.com"} ]}
javascript:void(0)
javascript:void(0) void计算()中表达式但不返回值。<a href="javascript:void(0)"></a>点击链接时不会有反应。但用在js时void不会产生效果。
href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。而javascript:void(0), 仅仅表示一个死链接
正则表达式
函数、方法
变量作用域
运算符
条件语句
break和continue
typeof
错误(异常)
变量提升
严格模式
JSON
void(0)
JavaScript
//这是注释 a = 1;//简单赋值语句
数据类型
js有动态类型,也就是相同的变量可用作不同类型(python也是)
数字 | Number | var x = 5;//只有一种数字类型 var x = 5.0; var x = 5e5; var x = 5e-5; 所有数据都以 64 位浮点型数据存储 |
字符串 | String | var x = "5"; |
布尔 | Boolean | var x = true; var x = false; |
数组 | Array | var x = new Array();x[0] = 0; var x = new Array("0", "1"); var x = ["0", "1"] |
对象 | Object | //对象是属性和方法的容器 var x = {zero:0,first:1};//name:value var zero = x.zero;//访问对象属性 var first = x["first"]; |
函数 | function | a = function(){} |
空 | Null | var x = null;//null可用来清空变量 |
未定义 | Undefined | var x;//变量不含值 null和undefined值相同,但类型不同 |
函数 | 方法 |
在对象x中定义函数funcName | |
function 函数名(var1, var2){ var x = 1; return x;//返回x } | var x{ id:1, funcName:function(){ return id;};}; |
x.funcName; x.funcName(); |
变量作用域
局部变量 | 全局变量 | |
声明/定义方式 | 在函数体内定义 var x = 1; | //给未声明的变量赋值,自动作为全局变量 x = 1; 在函数外声明的变量 var x = 1; |
作用域 | 只能在函数内被访问 没有块作用域{}, 函数才算作用域 | 网页内都能访问 |
生存期 | 函数运行完成后删除 | 页面关闭后删除 |
全局变量都属于window对象 x = 1; window.x = 1; for (var i = 0; i < 10; i++) { var y = i; } //循环外可以访问i和y |
算法运算符 | + - * / ++ -- % |
赋值运算符 | = += -= *= /= %= |
字符串+数字 | 字符串+数字=字符串 "a"+5="a5" 5+5+"a"="10a" 空文本+数字="数字"(无空格) " " + 5 = "5" |
比较运算符 | ==等于 ===绝对等于(值和类型) !=不等于 !==不绝对等于(值和类型) < <= > >= |
逻辑运算符 | && || !(not) 比较运算式?真结果:假结果 |
一元运算符+ | var y="5"; var x=+y;//利用+可以把变量转换为数字 |
if...else | switch | for循环 | while循环 |
if(a>b) { } else if(a>c) { } else { } | switch(n) { case 1: a = 1; break; case 2: a = 2; break; default: a = 0; } | for(int i=0; i<len; i++) { } //遍历对象中的每一个属性 var data={x:0,y:1}; for(d in data){ } //遍历数组中的每一个元素 var data=["a","b"]; for(d in data) { } | while(true) { } do { }while(true) |
continue只能用于循环
break;只能用于循环或switch break 标签引用; 可用于退出任意代码块
//list_label对下列语句作标记 list_label: { a = 1; b = 1; //break 标签引用 可退出任意代码块 break list_label; c = 1; }
typeof 获取变量类型
typeof 1; typeof NaN; | number 在转换时,不能转换成合法数字的都是NaN |
typeof "1"; | string |
typeof true; | boolean |
typeof [1,2]; | object |
typeof null; var x; typeof x; | object 只声明未赋值 |
typeof undefined typeof x; | undefined x未声明过 |
typeof fcuntion(){} typeof fcuntion a(){} | function |
"1".constructor | constructor属性可以返回对象的构造函数, 故可通过对象的consructor属性来判断它的类型 对Array typeof返回也是object,但用constructor属性就可以返回Array() |
try{ throw "错误信息";//抛出一个自定义错误 } catch(err){ a = err;//err的值就是 错误信息 }
变量提升
1. 函数及变量的声明会被自动提升到最上面(声明会自动变成在代码最上面)
2. 初始化不会自动提升(var x = 5;这个语句的位置不会自动变化)
严格模式
该模式下对代码有一定要求。通过把"user strict"写在脚本或函数头部来使用严格模式。
JSON: JavaScript Object Notation
一种轻量级的数据交换格式,用于存储和传输数据的格式,通常用于服务端向网页传递数据 。
语法规则: 数据为 键/值 对。数据由逗号分隔。大括号保存对象。方括号保存数组
3 条网站信息(对象)的数组
{"sites":[ {"name":"Runoob", "url":"www.runoob.com"}, {"name":"Google", "url":"www.google.com"}, {"name":"Taobao", "url":"www.taobao.com"} ]}
javascript:void(0)
javascript:void(0) void计算()中表达式但不返回值。<a href="javascript:void(0)"></a>点击链接时不会有反应。但用在js时void不会产生效果。
href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。而javascript:void(0), 仅仅表示一个死链接
正则表达式
//pattern是正则表达式 var pattern = /Runoob/i; var str = "Visit Runoob!"; //search返回匹配结果 var result = str.search(pattern);
\i \g \m | 对大小写不敏感 全局匹配,查找所有匹配而非只有一次 执行多行匹配 |
[abc] [0-9] (x|y) | 查找方括号中任何字符 查找任何0-9间任何数字 查找x或y |
\d \s \b \uxxxx | 查找数字 查找空白字符 匹配单词边界 查找以16进制xxxx规定的unicode字符 |
n+ n* n? | 匹配任何包含至少1个n的字符串 匹配任何包含0个或多个n的字符串 匹配任何包含0个或1个n的字符串 |
test() | 一个字符串是否匹配某个模式,若匹配返回true,否则返回false | var pattern = /e/; pattern.test("abcde");//true |
exec() | 返回正则表达式的匹配结果,数组形式 | var pattern = /e/; pattern.exec("abcde");//e |
search() | 查找字符串,传入的字符串会转换成正则表达式 | var str = "Visit Runoob!"; var n = str.search("Runoob"); |
replace() | 替换字符串,第一个参数为正则表达式,则为匹配到的字符串 | var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob"); |
相关文章推荐
- JavaScript 入门基础知识 想学习js的朋友可以参考下
- JS学习33:数值类型基础知识
- js基础学习之--BOM基础知识总结
- Node.js学习--基础知识(5)--npm
- Node.js学习--基础知识(6)--常用工具util和事件EventEmitter
- js学习笔记之基础知识
- [JS基础]JavaScript精简学习1:基础知识
- 根据w3cSchool学习javascript整理js的一些基础知识
- JS学习2(基础知识)
- Js学习---妙味课堂2-2 (说一些DOM的基础知识)
- JS 面试知识学习历程(第二天) -- JS基础知识(上)
- js基础知识相关学习笔记记录
- 【JS学习】——基础知识
- Node.js学习--基础知识(4)--模块与包
- Node.js学习--基础知识(7)--fs
- 前端知识学习----JS基础语法(1)
- tony的js学习笔记--基础知识(随时更新)
- Node.js学习--基础知识(2)--异步IO与事件式编程
- Js_基础知识学习_02
- Node.js学习--基础知识(8)--全局对象和全局变量