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数据类型
    1. string
    2. number
    3. boolean
    4. object
    5. function
    6. symbol
  • 3个对象类型
    1. Object
    2. Date
    3. Array
  • 不包含任何值的数据类型
    1. null
    2. 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关键字的意思

  1. 在方法中,this表示该方法所属对象
  2. 单独使用,this表示全局对象
  3. 在函数中,this表示全局对象(严格模式下,this为undefined)
  4. 在事件中,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基本语法概念的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-基本语法

学习 JavaScript 核心概念:函数

JavaScript基本语法概念

JavaScript基本语法概念

JavaScript初学基本概念和语法

JavaScript高级程序设计学习之基本概念