zoukankan      html  css  js  c++  java
  • JS基础

    【使用JS的三种方式】
    1、在html标签中,直接内嵌JS(并不提倡使用)
    例如:<button onclick="alert('那你就试试')">点你就点你</button>
    ---不符合W3C关于内容与行为分离的要求!!!
    2、在html页面中使用<script></script>包裹js代码:
    <script type="text/javascript">
    alert("hahahha");
    document.write("hahahha");
    </script>
    ----script标签可以放到页面的任何位置。一个页面可以放多个script。
    3、引入外部的js文件:
    例如:<script language="JavaScript" src="js/01.js"></script>
    [注意事项]
    ①<script></script>可以嵌入到页面的任意位置。但是,位置的不同会导致js代码的执行顺序不同;
    比如:<script></script>放到<body>面前,则js代码 会在页面加载之前就执行;
    ②引入外部的js代码,<script></script>必须是成对的标签。而且,标签中不能再有任何的js代码;

    js中的多行注释。 ctrl+shift+/
    js中的单行注释。ctrl+/
    [js中的变量]
    1、js中变量声明的写法:
    var num=10; //使用var声明的变量,属于局部变量,只在当前作用域内有效;
    num =10; //不用var声明的变量,默认为全局变量,在整个js文件中都有效;在声明的下面。
    var x=1,y=2,z=3;//使用一行语句,同时声明多个变量。上式中,y属于已经声明,但是未赋值状态,结果为undefinde;
    [声明变量的注意事项]
    ①js中所有变量的声明,均使用var关键字。变量具体是什么数据类型,取决于给变量赋值的类型;
    ②js中同一个变量,可以在多次不同赋值时,修改变量的数据类型;
    var a =10;//从初始声明时,a属于整数型;
    a ="haha";//重复赋值时,整数型的a被修改为字符串类型;
    ③变量可以使用var声明,也可以不使用var声明。
    [区别]
    使用var声明为局部变量,不使用var声明为全局变量;
    ④只用var声明,但是不赋值,结果为undefinde;
    例如: var a;//a为undefinde。
    但是,如果不声明也不赋值的a,直接使用会报错。
    ⑤同一变量名可以多次使用var声明。但是,后面的var并没有什么用。第二次在使用var声明时,只会被理解为普通的赋值操作。
    2、变量名的命名要求:
    ①变量名只能有字母、数字、下划线组成。
    ②开头不能是数字。
    ③变量名区分大小写。大写字母和小写字母是不同的变量;
    纯大写字母用来表示变量.
    3、变量名的命名规范:
    ①要符合小驼峰法则:首字母小写,之后每个单词的首字母大写;
    例如:myNameIsZhongYingYing
    ②或者使用匈牙利命名法:
    所有字母小写,单词之间用_分隔
    例如my_name_is_zhong_ying_ying;
    ③mynameiszhongyingying 能用,但是不规范;

    4、【重点】js中的数据类型:
    Undefined:未定义。已经使用var声明的变量,但是没有赋值 eg: var a;
    Null:表示空的引用。
    Boolean:布尔类型。表示真假,只有两个值:true/flase;
    Number:数值类型。可以是整数,也可以是小数;
    String:字符串类型。用""或''包裹的内容,称为字符串;
    Object:对象类型。
    5、 【重点】[常用的数值函数]
    ①isNAN():判断一个变量或常量是否是NAN(not a num 非数值);
    使用isNAN()判断时,会尝试使用Number()函数进行转换,如果最终结果能够转为数字,则不是NAN,结果为false。
    ②Nunber()函数,将其他类型的数据,尝试转为数值型;
    [字符串类型]
    ---字符串为纯数值字符串,会转为对应的数字;例如:"111"->111
    ---字符串为空字符串,会转为0;""->0
    ---字符串包含其他任何字符时,都不能转;"1a"->NAN
    [Boolean类型]
    true->1 flase->0
    [Null/Undefind]
    Null->0 Undefind->NAN
    [Objct](后续讲解)
    ③parseInt():将字符串转为整数类型:
    ---纯数值字符串,能转。
    "12"->12 "12.9->12"(小数转化时,直接抹掉小数点,不进行四舍五入)
    ---空字符串,不能转。 ""->NAN
    ---包含其他字符的字符串,会截取第一个非数值字符串钱的数字部分;
    例如:"123a456"->123 "a123b456"->NAN
    ---ParseInt()只能转字符串,转其他类型,全是NAN。
    [Number函数与ParseInt函数的区别]
    1> Number函数可以转各种数据类型,ParseInt函数只能转字符串;
    2> 两者在转字符串时,结果不完全相同。
    ④ParseFloat:将字符串转为数值型;
    转换规则与ParseInt相同,只是如果有小数,则保留小数点;如果没有小数,则依然是整数。
    例如:"12.5"->12.5 "12"->12
    ⑤typeof:检测变量的数据类型
    字符串->String 数值->Number true/flase->Boolean
    未定义->Undefined 对象/NU11->object 函数->function
    [js中常用的输入输出语句]
    1.document.write();将()中的内容,打印输出到留言器屏幕时;
    使用时,需注意,除变量、常量外的所有内容,必须放到""中。变量和常量必须放到""外面;
    如果同时有变量和字符串时,必须用+链接;
    eg:document .write("左手中的纸牌: "+left+"<br />");
    2.alert();使用弹窗输出;
    弹窗警告,()中的内容与上述要求相同。
    3.prompt();弹框输入;
    接受两部分参数:
    ①输入框上面的提示内容,可选;
    ②输入框里面的默认信息,可选;
    当只写一部分时,表示输入框上面的提示内容;
    可以定义变量,接受输入的内容。点击确定按钮,变量将被赋值为输入的内容;点击取消按钮,变量将被赋值为null;
    输入内容时,默认接受的数据类型都是字符串

    JS中的运算符
    1、算术运算(单目运算符)
    +、 -、 *、 /、 % 取余、++ 自增、-- 自减
    加号有两种作用:链接字符串和加法作用,当+两边全为数字时,进行加法运算;当+两边有任意一边为字符串时,起链接字符串的作用,链接之后的结果为字符串;
    除加号外,其余符号运算时,会先尝试将左右变量用Number函数转为数字;
    除号:结果会保留小数点;
    ++:自增运算符,将变量在原有基础上+1
    --:自减运算符,将变量在原有基础上-1
    【a++和++a的异同】
    ①相同点:不论a++和++a,运算完以后,a的值均会+1;
    ②不同点:a++:先用a的值去运算,再把a+1;
    ++a:先把a+1,再把a+1以后的值取运算;
    eg:var a=3,b,c;
    b = a++ +2;//先用a运算,b=3+2 再把a+1 a=4
    c = ++a +2;//先把a+1,a=5,再用a+1以后的值去运算,c=5+2
    2、赋值运算
    =:赋值,把右边的赋值给左边 += -= *= /= %=
    +=:a+=b;相当于a=a+b;但是,前者的运算效率要比后者快,所以推荐使用+=的写法;
    3、关系运算
    ==等于、 ===全等、!=不等、!==不全等、>、<、>=、<=
    关系运算符,运算之后的结果,只能是Boolean类型;
    判断一个数字处于某个空间,必须用&&链接;
    eg:a<10 && a>0 错误写法:10>a>0
    ===:严格等于,要求不但要类型相同,值也必须相同;类型不同,结果直接为flase;类型相同,再进行下一步计算;
    ==:等于。类型相同:与===效果一样。类型不同时,会先尝试用Number函数将两边转为数字,然后再进行判断。
    但是,有个别 特例:eg:Null==flase(错误) Null==Undefined(正确)
    4、条件运算符(多目运算)
    a>b?true:false
    有两个重要符号: ? 和:
    当?前面部分,运算结果为true时,执行:前面的代码
    当?前面部分,运算结果为flase时,执行:后面的代码
    冒号两边可以为数值,则整个式子可用于赋值。var a = 1<2?1:2;
    冒号两边可以为代码块,将直接执行代码。1<2?alert(1):alert(2);
    多目运算符可以多层嵌套。var a =1<2?alert(1):(1>0?4:5);
    5、位运算符、 逻辑运算符
    &&与、||或、!非
    &&:两边都成立,结果为true;
    ||:两边有任意一边成立,结果为true;
    6、运算符的优先级:
    () //小括号最高
    ! ++ -- //单目运算符
    * / %
    + -
    > < >= <=
    == !=
    && //与或同时存在时,&&比||高
    ||
    = += -= *= /=
    JS的分支结构
    【if-else结构】
    1、结构写法:
    if(判断条件){
    条件为true时,执行if的{}
    }else{
    条件为false时,执行ease的{}
    }
    2、注意事项:
    ①else{}语句块可以根据情况省略
    ②if和else后面的{}可以省略,但是省略{}后,if和else后面只能跟一条语句;(所以,不建议省略);
    3、【重点】if的{}中的判断条件支持的情况:
    ①Boolean:true为真,false为假;
    ②String:空字符串为假,所有非空字符串为真;
    ③Number:0为假,一切非零数字为真;
    ④undefined null NAN:全为假;
    ⑤Object:全为真;

    【多重if、阶梯if结构】
    1、结构写法:
    if(条件一){
    条件一成立,执行的操作
    }else if(条件二){
    条件一不成立&&条件二成立,执行的操作
    }else if{
    上述所有的条件都不成立,执行的操作
    }
    2、多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行。遇到正确选项并执行完以后,直接跳出结构,不再判断后续分支;
    【嵌套if结构】
    1、结构写法:
    if(条件一){
    条件一成立
    if(条件二){
    条件一成立 && 条件二成立
    }else{
    条件一成立 && 条件二不成立
    }
    }else{
    条件一不成立
    }
    2、在嵌套if结构中,如果省略{},则else结构永远属于离他最近的一个if结构;
    3、嵌套结构可以多层嵌套,但是一般不推荐超过3层。
    能用多层if结构的一般不推荐使用嵌套if。


  • 相关阅读:
    3. 算法分析
    4. union-find算法
    1.基础编程模型和数据抽象
    2. 背包,队列和栈
    .NET Core 单元测试
    ASP.NET Core Web API
    ASP.NET Core MVC 之区域(Area)
    ASP.NET Core MVC 之依赖注入 Controller
    ASP.NET Core MVC 之依赖注入 View
    微服务架构学习与思考(04):微服务技术体系
  • 原文地址:https://www.cnblogs.com/yingyingh5/p/7399968.html
Copyright © 2011-2022 走看看