js学习——基础知识
JavaScript
//这是注释
a = 1;//简单赋值语句
数据类型
js有动态类型,也就是相同的变量可用作不同类型(python也是)
| 数字 | Number |
var x = 5;//只有一种数字类型 |
| 字符串 | String | var x = "5"; |
| 布尔 | Boolean |
var x = true; |
| 数组 | Array |
var x = new Array();x[0] = 0; |
| 对象 | Object |
//对象是属性和方法的容器 |
| 函数 | function |
a = function(){} |
| 空 | Null | var x = null;//null可用来清空变量 |
| 未定义 | Undefined |
var x;//变量不含值 |
函数、方法
| 函数 | 方法 |
| 在对象x中定义函数funcName | |
|
function 函数名(var1, var2){ |
var x{ |
|
x.funcName; |
函数中return默认是最后一行,即使没有分号(return)也会默认结束函数。
变量作用域
| 局部变量 | 全局变量 | |
|
声明/定义方式 |
在函数体内定义 |
//给未声明的变量赋值,自动作为全局变量 |
|
作用域 |
只能在函数内被访问 没有块作用域{}, 函数才算作用域 |
网页内都能访问 |
| 生存期 | 函数运行完成后删除 | 页面关闭后删除 |
|
全局变量都属于window对象 |
运算符 大部分与C++类似
| 算法运算符 | + - * / ++ -- % |
| 赋值运算符 | = += -= *= /= %= |
| 字符串+数字 |
字符串+数字=字符串 |
| 比较运算符 | ==等于 ===绝对等于(值和类型) !=不等于 !==不绝对等于(值和类型) < <= > >= |
| 逻辑运算符 |
&& || !(not) |
| 一元运算符+ |
var y="5"; |
条件语句 与C++类似
| if...else | switch | for循环 | while循环 |
if(a>b) |
switch(n) |
for(int i=0; i<len; i++) |
while(true) |
break和continue 与C++类似
continue只能用于循环
break;只能用于循环或switch break 标签引用; 可用于退出任意代码块
//list_label对下列语句作标记
list_label:
{
a = 1;
b = 1;
//break 标签引用 可退出任意代码块
break list_label;
c = 1;
}
typeof 获取变量类型
|
typeof 1; |
number |
| typeof "1"; | string |
| typeof true; | boolean |
| typeof [1,2]; | object |
|
typeof null; |
object |
|
typeof undefined |
undefined |
|
typeof fcuntion(){} |
function |
|
"1".constructor |
constructor属性可以返回对象的构造函数, |
错误(异常)
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"); |
js学习——基础知识的更多相关文章
- css+js+html基础知识总结
css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...
- Matrix学习——基础知识
以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明. 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部 ...
- JAVA学习基础知识总结(原创)
(未经博主允许,禁止转载!) 一.基础知识:1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平 ...
- 001/Node.js(Mooc)--基础知识
一.Node.js基础知识 node.js用C++语言编写. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时 ...
- ansible学习基础知识和模块(一)
基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...
- Python学习-基础知识-2
目录 Python基础知识2 一.二进制 二.文字编码-基础 为什么要有文字编码? 有哪些编码格式? 如何解决不同国家不兼容的编码格式? unicode编码格式的缺点 如何既能全球通用还可以规避uni ...
- JavaScript回顾一下js的基础知识,以及学习一下在项目中了解到的新知识
学习文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions https://www.cnblogs.com ...
- IOS科研IOS开发笔记学习基础知识
这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...
- MySQL学习基础知识1
什么是数据库? 数据库就是存储数据的仓库. 存储方式: 变量 无法永久存储 文件处理,可以永久存储,弊端:文件只能在自己的计算机读写,无法被分享(局域网除外) 数据库分类: 1.关系型数据库 提供某种 ...
随机推荐
- 使用js请求Servlet时的路径
项目结构如下: 全是web的html页面 js部分重要代码: function ajaxValidate() { var flag=false; $.ajax({ "url":&q ...
- 【51nod 1191】消灭兔子
Description 有N只兔子,每只有一个血量B[i],需要用箭杀死免子.有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i](1 <= i <= M).假设 ...
- PPT制作
0.[整体风格]整体风格统一 界面排版 0.1 字体大小: 0.2 字体颜色: 0.3 字体的种类统一(不是指只取一种字体)) 1.[表达]结构化表达: 2.[取色]取色风格统一: 技巧:主色不超过三 ...
- Linux之备份(tar)/解压与压缩(gzip,bzip2,xz)【待完善】
[本博文,待完善] 以data原始文件为例,同tar备份,用xz压缩,实现备份->压缩整个过程的正向过程(生成.tar.xz)与其逆过程(先解压,后还原备份文件) 1.备份(tar) tar - ...
- ssm mysql 新增数据返回id
描述: 在ssm项目中,新增一条数据,返回该数据的数据库id(主键) 实现方法: 1.xml 增加 useGeneratedKeys="true" keyProperty=&qu ...
- mysql报错:Cause: com.mysql.jdbc.PacketTooBigException
报错信息: Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too ...
- js 关键字 in 的使用方法
参考地址:http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930643.html in 操作符用于确定某个元素是否在数组中,判断某个属 ...
- jq的dom操作
代码可以在该网址测试:www.w3school.com.cn/tiy/t.asp?f=jquery_manipulation_detach_move attr 使用函数来设置属性/值:函数参数为选择器 ...
- KeyUp 和KeyDown 、KeyPress之间的区别
keydown:用户在键盘上按下某按键是发生.一直按着某按键则会不断触发(opera浏览器除外). keypress:用户按下一个按键,并产生一个字符时发生(也就是类似shift.alt.ctrl之类 ...
- J - Joyful HDU - 5245 (概率)
题目链接: J - Joyful HDU - 5245 题目大意:给你一个n*m的矩阵,然后你有k次涂色机会,然后每一次可以选定当前矩阵的一个子矩阵染色,问你这k次用完之后颜色个数的期望. 具体思路 ...