javascript初探(一)------基本语法

一、概述

1.1 简介

  • 语言简介:JavaScript 是 Web 的编程语言,所有现代的 HTML 页面都使用,遵循ES6规范
  • 特点:
    • 解释型语言:逐行执行,某行报错即退出,后续均不执行
    • 书写:大小写敏感,会忽略多余的空格,字符串建议用""
    • 句尾分号:建议增加,否则浏览器自动加,有误加可能
  • 功能:
    1. 能够改变所有HTML元素内容、属性、CSS 样式、对事件做出反应
    2. 在数据被提交到服务器之前验证数据
    3. 控制cookies,包括创建和修改等

1.2 调用方式

  • 直接调用
    <html>
         <head>
         <title>显示在浏览器标签上的名字</title>
         
         	<!-- 1、引用调用:对当前文件的相对路径 -->
         	<script src="demo.js" type="text/javascript"></script>
         	
         	<!-- 2、直接调用 -->
            <script type="text/javascript">
            	// 直接显示的页面上,即写入body标签内,DOM操作
                document.write("在浏览器视窗内直接显示"); 
                // 浏览器直接弹出弹窗,默认是windows的方法
                alert("弹窗显示");          
                // 调试js常用,在debug时打印变量
                // 控制台:在chrome浏览器页面右键单击,选检查,然后找console
                console.log("浏览器的控制台console显示,F12调出控制台");	      
            </script>
         </head>
         <body>
      		<!--这里写HTML页面内容,注意此注释与js注释写法不同-->
         </body>
    </html>
    

二、数据类型

2.1 基本数据类型

2.1.1 种类

  • 列表
    数据类型定义写法强制类型转换
    字符串(String)let name = "Johnson"; String(obj)
    let name = obj + ""
    数字(Number)let age= 1.6;
    let age= 123e-5
    Number(obj)
    布尔(Boolean)let isGood = true;Boolean(obj)
    未初始化的变量(undefined)let temp; ,未声明会报错
    空值(null)let a = null,用于初始化时
    不指定数据类型

    数字特殊转换:

    • 整型:let b = parseInt(pixel),精确针对let pixel = "123px";,提取最左侧整数部分
    • 浮点型:let b = parseFloat(pixel),精确针对let pixel = "123.345px";,提取最左侧浮点部分

2.1.2 类型转换

  • 特例及布尔值
    转字符串转数字布尔值对象
    undefined“undefined”NaNfalseTypeError
    null“null”0falseTypeError
    true“true”1new Boolean(true)

  • 字符串
    转数字布尔值对象
    “”0falsenew String(“”)
    “1.2”1.2truenew String(“1.2”)
    “one”NaNtruenew String(“one”)

  • 数字
    转字符串布尔值对象
    NaN“NaN”falsenew Number(NaN)
    Infinity“Infinity”truenew Number(Infinity)

    超界:界限为Number.MAX_VALUE,返回Infinity-Infinity
    非数字(NaN

    • 产生:0/0,无穷/无穷,开方-1,数字减字符串(类似操作)
    • 判断:if(isNaN(x)){},或者if(isFinite(x)){},判断非Infinity&&非NaN
  • 数字变量方法
    方法描述用法
    toString()仅转为字符串let num = 123.4;num.toString();为123.4
    toFixed()指定小数位数let num = 123.4;num.toFixed(2);为123.40
    toPrecision()指定有效位数let num = 123.4; num.toPrecision(6);为123.400
    toExponential()转换为指数计数法let num = 123.4; num.toExponential();为1.234e+2

2.2 对象类型

2.2.1 种类

  • 对象:let obj = {},继承自Object类,并继承Object.prototype属性、方法
  • 示例
    在这里插入图片描述
  • 内置对象
    数据类型定义写法原型对象
    数组let arr = [];let arr = new Array();Array.prototype
    函数见下篇
    日期let date = new Date();Date.prototype
    正则表达式let reg = new RegExp("js")RegExp.prototype

    原型属性继承:以上内置对象原型均继承自Object.prototype
    对象可调用方法:可通过变量名.__proto__Object.getPrototypeOf(变量名)查看当前对象可调用的方法、属性,可改写、新增

  • 宿主对象:宿主环境(web浏览器)定义的,如HTMLElement对象

2.2.2 转换

  • Array对象转换
    转字符串转数字布尔值
    []“”0true
    [9]“9”9true
    [‘a’]使用join方法NaNtrue

三、运算符

  • 运算符:同C语言,包括逻辑运算符&&、|| a++, ++a,+=, -=
  • 判断运算符:
    • ==/!=:若类型不同,先做类型转换2.2节,再比较,“1” == 1 为true
    • ===/!==:不做类型转换,直接比较,“1” === 1 为false
    • 判断NaN:任何值都不等于NaN包括其自己,用let res = isNaN(val);判断
  • 三目运算符:let max = a >b ? a : b;

四、语句

4.1 常规语句

  • if语句
    // 单if语句,大括号内为语句块
    if(n){
    // 需要执行的语句块
    }
    
    // if-else语句
    if(n){
    	// 需要执行的语句块
    }else{
    }
    
    // 多if-else语句
    if(n){
    	// 需要执行的语句块
    }else if(m){
    	// 需要执行的语句块
    }else{
    	// 需要执行的语句块
    }
    
    // 逻辑与 之 “短路操作” 
    // 实现if语句
    n && m == 1 && run();
    > 按顺序验证前两个式子,有一个false,则run函数就不执行
    
  • switch语句
    // n 可为数字,也可为表达式
    switch(n)
    {	// 若没break语句,则语句顺序执行每条语句,直到最后
    	// case后:可为数字,可为字符串,全等===判断
        case 1:
            // 执行代码块 1
            // break,continue都可在js中使用
            break;
        case 2:
            // 执行代码块 2
            break;		
        default:
            // 执行代码块 余下
    }
    
  • while语句
    // 常规while语句:n可为表达式,为false时跳出循环体
    while (n)
    {
        //需要执行的代码
    }
    
    // do-while语句:n可为表达式,为false时跳出循环体	
    do{
        //需要执行的代码
    }while (n)
    
  • for语句
    // 迭代数字
    for (let i=0 ; i<word.length ; i++){
        //被执行的代码块
    }
    
    // 迭代读取数组
    let obj=[1,true,'good']
    for(let index in obj){
    	console.log(obj[index])
    }
    
    // ES6语法obj可为: Arrays(数组), Strings(字符串), 
    // Maps(映射), Sets(集合)等可迭代的数据结构等,item直接提取元素值
    for (let item of obj){
        //被执行的代码块
    }
    

4.2 debug

  • try语句
    try {
    	// 程序语句
    }
    catch(e){
    	// e为Error对象
    }
    finally{
    	// 不管try是否抛出异常,此处总会执行,用于对打开的对象关闭操作
    }
    
  • throw语句
    throw "可以直接写字符串"
    
    throw new Error("抛出Error对象")
    

下一篇:javascript初探(二)------对象及方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值