zoukankan      html  css  js  c++  java
  • js学习——基础知识

     

    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

    

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

  • 相关阅读:
    linux下编译GDAL3.x(集成Proj和Geos等)
    CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解
    CSS hover伪类改变其他元素的样式
    PHP 删除数组指定元素
    CakePHP 调试方法 汇总
    Linux/Mac OS 在终端使用 code 命令打开项目 VSCode
    苹果 MacOS 安装 Source Code Pro
    MacOS 安装 Homebrew 错误处理 Connection refused
    修改 VSCode 终端 Terminal 的字体
    spring cloud gateway自定义过滤器
  • 原文地址:https://www.cnblogs.com/coolqiyu/p/7050831.html
Copyright © 2011-2022 走看看