JavaScript基本语法概念
Posted zqq_hello_world
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基本语法概念相关的知识,希望对你有一定的参考价值。
异常
javascript通过trycatch(e)finally
来捕获异常,也可以痛过throw关键字来抛出自定义异常。
function fun1(a)
try
if(a > 3)
console.log('a === ' + a);
else
throw 'a值不被允许';
catch(err)
//非自定义异常需要用err.message
console.log('err====:' + err);
finally
console.log('运行结束========');
typeof
可以使用typeof操作符来检测变量的数据类型
typeof 'zqq'; //返回string
typeof 100.01; //返回number
typeof true; //返回boolean
typeof [1,2]; //返沪object
typeof name:'zqq',age:'18'; //返回object
null和undefined
null表示空对象引用,var a = null
,类型为object。undefined是没有设置值的变量var a;
,类型为undefined。
var a;
var b = null;
console.log(a); //undefined
console.log(b); //null
console.log(typeof a); //undefined
console.log(typeof b); //object
console.log(a===b); // false
console.log(a==b); //true
数据类型
- javascript数据类型
- string
- number
- boolean
- object
- function
- symbol
- 3个对象类型
- Object
- Date
- Array
- 不包含任何值的数据类型
- null
- undefined
可以使用typeof操作符来查看javascript变量的数据类型
constructor属性
constructor属性返回javascript变量的构造函数
'zqq'.constructor; //返回函数String()[native code]
['a','b','c'].constructor; //返回函数Array()[native code]
正则表达式
正则表达式是由一个字符序列形成的搜索模式,当做文本搜索时,可以用搜索模式来描述要查询的内容。正则表达式可用于所有文本搜索和文本替换操作。
语法:/正则表达式/修饰符(可选)
javascript中正则表达式通常用于两个方法:search()
和replace()
。
search()
用于检索匹配的字符串,并返回起始位置。不存在返回-1。
replace()
用于替换字符串。
//search方法
var str = 'hello world';
var n = str.search(/world/i);
console.log(n); //输出解构为6,/world/i,i表示不区分大小写
var str = 'hello world';
str = str.replace(/World/i,'zqq');
console.log(str); //正则体会world,输出为hello zqq
//替换全部,/g
var repstr = 'aa cc dd aa';
console.log(repstr.replace(/aa/g,'zq')s);
test方法
test()
方法可以检测字符串是否匹配正则表达式,匹配返回true
不匹配返回false
//校验字符串是否包含字母a-z
var re = /a-z/;
console.log(re.test('123a456')); // true
console.log(/a-z/.test('123e456')); //true
exec方法
exec()
方法是一个正则表达式方法,用于检索字符串中正则表达式的匹配,返回的是个数组,如果未匹配到则返回null。
var str = '123 a zqq 22 wq';
var r = /a/.exec(str);
console.log(r);
声明提升
JavaScript中,函数和变量的声明都将被提升到函数的最顶部。变量可以先使用再声明。JavaScript只有声明变量会提升,初始化不会。通常在每个变量使用前声明变量。
//先使用变量
a = 'hello world';
console.log(a);
//后声明变量a
var a;
this关键字
面向对象语言中this是表示当前对象的阴影,在JavaScript中this不是固定不变的,会随着执行环境的改变而改变
不同环境下this关键字的意思
- 在方法中,this表示该方法所属对象
- 单独使用,this表示全局对象
- 在函数中,this表示全局对象(严格模式下,this为undefined)
- 在事件中,this表示接收事件的元素
方法中this
//在方法中,this指向调用他所在方法的对象
var person =
name:'zqq',
age:18,
say:function()
console.log(this.name +' '+ this.age);
单独使用this
//单独使用this,指向全局对象,在浏览器中,window就是全局对象[object window]
var a = this;
let和const
let
声明的变量只在let所在代码块内有效。const
声明的是一个只读的常量,一旦声明就不能改变。
JSON
JSON是用于存储和传输数据的格式,通常用于互联网传递数据,是一种轻量级的数据交换格式。JSON格式在语法上与创建JavaScript对象代码是相同的,所有可以很轻松的将JSON数据转换为JavaScript对象。
JSON字符串转换为JavaScript对象
//定义json字符串
var jsonstr =
'name':'zqq',
'age':18,
'sex':'男'
//通过JSON.parese()方法,将json字符串转为javascript对象
var obj = JSON.parse(jsonstr);
JavaScript对象转为JSON字符串
//创建javascript对象
var obj = new Object();
obj.name = 'zqq';
obj.age = 18;
//使用JSON.stringify()方法,将javascript对象转为json字符串
var jsonstr = JSON.stringify(obj);
void
void
是JavaScript中非常重要的关键字,该操作符指定要计算一个表达式但不返回值。
//点击,计算结果为0,没任何反应
<a href="javascript:void(0)">点击不会有任何反应</a>
//点击提示
<a href="javascript:void(alert('Hello World'))">点击弹窗</a>
//a的结果为undefined
var a,b,c;
a = void(b = 2,c = 1);
href="*"与href=“javascript:void(0)”
href="#"
包含一个位置信息,会阻止跳转,但是url结尾会多个#。href="javascript:void(0)"
仅仅表示死链接,阻止跳转,url不会发生任何变化。
异步编程
JavaScript中的异步操作函数往往通过回调函数来实现一步任务的结果处理。
//定义一个回调函数
function fun1()
console.log('回调函数被执行========');
//2秒后执行回调函数fun1,setTimeout函数会在子线程中等待指定时间,单位毫秒
setTimeout(fun1,2000);
//匿名函数
setTimeout(function()
console.log('匿名函数被执行======');
,2000);
异步AJAX
除了setTimeout
函数以外,异步回调广泛应用于AJAX编程
以上是关于JavaScript基本语法概念的主要内容,如果未能解决你的问题,请参考以下文章