您的位置:首页 > Web前端 > JavaScript

js学习——基础知识

2017-06-20 00:13 447 查看
数据类型

函数、方法

变量作用域

运算符

条件语句

break和continue

typeof

错误(异常)

变量提升

严格模式

JSON

void(0)

JavaScript

//这是注释
a = 1;//简单赋值语句


数据类型

js有动态类型,也就是相同的变量可用作不同类型(python也是)

数字Numbervar x = 5;//只有一种数字类型

var x = 5.0;

var x = 5e5;

var x = 5e-5;

所有数据都以 64 位浮点型数据存储

字符串Stringvar x = "5";
布尔Booleanvar x = true;

var x = false;

数组Arrayvar 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"];

函数functiona = function(){}

Nullvar 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...elseswitchfor循环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,否则返回falsevar 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");

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: