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();

函数中return默认是最后一行,即使没有分号(return)也会默认结束函数。

变量作用域                        

  局部变量 全局变量

声明/定义方式

在函数体内定义
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

运算符                        大部分与C++类似

算法运算符 + - * / ++ -- %
赋值运算符 = += -= *= /= %=
字符串+数字

字符串+数字=字符串
"a"+5="a5"
5+5+"a"="10a"
空文本+数字="数字"(无空格)
"    " + 5 = "5"

比较运算符 ==等于   ===绝对等于(值和类型)
!=不等于 !==不绝对等于(值和类型)

< <= > >=

逻辑运算符

&& || !(not)
比较运算式?真结果:假结果

一元运算符+

var y="5";
var x=+y;//利用+可以把变量转换为数字

条件语句                        与C++类似

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)

break和continue                        与C++类似
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");

js学习——基础知识的更多相关文章

  1. css+js+html基础知识总结

    css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...

  2. Matrix学习——基础知识

    以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明. 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部 ...

  3. JAVA学习基础知识总结(原创)

    (未经博主允许,禁止转载!) 一.基础知识:1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平 ...

  4. 001/Node.js(Mooc)--基础知识

    一.Node.js基础知识 node.js用C++语言编写. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时 ...

  5. ansible学习基础知识和模块(一)

    基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...

  6. Python学习-基础知识-2

    目录 Python基础知识2 一.二进制 二.文字编码-基础 为什么要有文字编码? 有哪些编码格式? 如何解决不同国家不兼容的编码格式? unicode编码格式的缺点 如何既能全球通用还可以规避uni ...

  7. JavaScript回顾一下js的基础知识,以及学习一下在项目中了解到的新知识

    学习文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions https://www.cnblogs.com ...

  8. IOS科研IOS开发笔记学习基础知识

    这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...

  9. MySQL学习基础知识1

    什么是数据库? 数据库就是存储数据的仓库. 存储方式: 变量 无法永久存储 文件处理,可以永久存储,弊端:文件只能在自己的计算机读写,无法被分享(局域网除外) 数据库分类: 1.关系型数据库 提供某种 ...

随机推荐

  1. JavaSE回顾及巩固的自学之路(二)——————进入JavaSE

    好的.今天接着上一篇文章对JavaSE的历程初步介绍,开始对JavaSE的技术性知识进行探讨. 首先,选择编程,成为一名程序员,应该会了解一些计算机的相关基础知识,毕竟,以后就是和计算机打交道了嘛.s ...

  2. [C++]PAT乙级1002.写出这个数(20/20)

    /* 1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. ...

  3. AttributeError: module '__main__' has no attribute 'main'解决方法

    在终端运行.py文件时报错:AttributeError: module '__main__' has no attribute 'main' 原因:在PyCharm里运行python程序需要添加 i ...

  4. 第23月第24天 git命令 .git-credentials git rm --cached git stash clear

    在git push的时候,有时候我们会想办法撤销git commit的内容 1.找到之前提交的git commit的id git log 找到想要撤销的id 2.git reset –hard id ...

  5. 4-13 object类,继承和派生( super) ,钻石继承方法

    1,object 类 object class A: ''' 这是一个类 ''' pass a = A() print(A.__dict__) # 双下方法 魔术方法 创建一个空对象 调用init方法 ...

  6. python3:实现输出等边三角形、直角三角形

    学习python,用的是3.5的版本: 记录一下学习历程~ 一.先来一个简单的,输出直角三角形: ***知识点:for循环,range()函数 二.进阶:输出等边三角形 ******知识点:嵌套for ...

  7. mysql 半同步复制~ 整体概述与改进

    一 简介:今天来聊聊增强半同步复制这一强悍的特性 二 原理解析 1 AFTER_COMMIT(5.6默认值) master将每个事务写入binlog ,传递到slave 刷新到磁盘(relay log ...

  8. Mysql多实例安装笔记

    参考: 系统:KaliLinux (x86_64) 软件下载 1.下载地址: 2.选择5.6版本 安装 1.准备文件和目录 tar -zxvf mysql-5.6.40-linux-glibc2.12 ...

  9. python类的内建方法

    研究email源码学到的 class test(): """Class for generating text/* type MIME documents."& ...

  10. Python os.remove() 删除文件

    概述 os.remove() 方法用于删除指定路径的文件.如果指定的路径是一个目录,将抛出OSError. 在Unix, Windows中有效 语法 remove()方法语法格式如下: os.remo ...