js基础01

4 篇文章 0 订阅
3 篇文章 0 订阅
day01
js编写页面特效动态脚本类型的语言
变量:存储数据(日常生活中的东西,比如电视,手机,电脑,出生年份。。。)
语法:
    var obj=value;
    obj不能为数字开头,且区分大小写
    value对应数据类型,如number string bool null undefined
    概念
        内存中存储数据的存储空间,并起一个别名
    使用
        创建
            通过var方式 加上一个别名
            var obj;
        赋值
            将等号右边的数据保存到等号左边
            obj=value;
        取值
            在任何位置使用变量名造次使用变量中的值
            console.log(obj);
        简写:var obj=value;
****
声明提前
        在执行程序之前,js引擎会预读所有var声明的变量
        集中到顶部创建,赋值会留在原地
        原来的
        console.log(i);//undefined
        var i=0;
        console.log(i);//0
        引擎修改后
        var i;
        console.log(i);//undefined
        i=0;
        console.log(i);//0
        仅声明未赋值,会出现一个undefined
        var obj;//undefined
        仅赋值未声明(强烈不建议使用,虽然不会出错)
        m=12;
        未赋值未声明 obj is not defined
        k
        原型类型(基本类型)
            number:数值
                var s1=1,s3=2.5;
            特殊情况:舍入误差
                可能在计算过程上,可能会出现计算不尽的情况,通过
                四舍五入方式来处理:i.toFixed(int)
            占用8字节
                1kb=1024b
                1gb=1024mb;
            string:字符串
               通过引号(双,单)都可以的
                使用了国际标准:unicode
                一旦创建无法修改,只能创建或者替换
                一个英文,数字占1b,一个汉字2b
            什么情况下使用数字(原因是数字运算快)
            比如价格,数量,年龄等,只要不含非数字的都使用number
            只要含有非数字的都使用string
            boolean:布尔
                true--1
                false--0
            undefined:未定义
            null:空
其他:
强类型:开发大型底层应用 :c ,c++ java


弱类型:开发高层应用(网页):js,python ,php
特点
    声明变量时,无须指定数据类型
    同一个变量,可以先后使用不同的数据类型
    它会根据自身情况,'自动'的进行数据类型的转换


自动(隐式)转换
    不需要程序员干预的,js自动帮我们程序员完成的
    算数运算中
    +,-,*/ %
    默认情况下,会将数据转换成数字,然后计算
    var s1=1,s2='2';
    s2-s1  s2*s1 s2/s1 ....
    +(重点)
        如果2个变量进行计算时,其中一方
        是字符串,那么就采用字符串拼接
    如果转换不成数字,NaN(not a Number)
手动(强制)转换
    程序员通过调用某些函数来完成类型的操作
    任意类型转字符串的2个方法
        x.toString():(除null和undefined外的其他都可以处理和面向对象的时候)
        String(x):万能的(隐式处理)
        typeof(obj):用于判断数据的类型
        x.valueOf():只能 获取变量的内部值,进行类型转换
    任意类型转数字
        Number(x):(自动转换,只转换为纯数字的)
        特殊:
            null  0
            ''  0
            true
    针对字符串的--数字
    parseInt(x)
        从左到右,依次读取X中数字字符串直到碰到
        第一个非数字字符串就退出
        无法识别小数部分
        自动跳过空字符串
    parseFloat(x)
        识别小数的
        将字符串转换为数值
    Number与parseXXX;
        前一个是万能的 ,后一个是字符串
        如果字符串结尾有位置,使用后一个
任意类型转布尔
    除0 NaN,null,undefined,''-->false;
    其他为true


算数运算符:+ -* /% ++ --
%求余
    先整除,再取除不尽的余数部分
    10%3=1
    步骤:1:10/3=3;
         2:余数为1
    何时使用:
        判断能否被某个数整除时
            比如说,能被2整除的
            4,5,6,7,8,9,10 %2==0
            被2整除余数是否是0
        限制运行结果的上限时
            比如我要限制3到
                3,4,5,6,6,7,8/3
++ --(自增1,自减1)
    将结果保存给变量
    如果++,--在程序叫独立一行使用的话
        i++  ++i的情况是一样的
    如果参与运算如下
        ++i返回新值
        i++返回旧值
        var s=1;
console.log(s++ + s++ + s++ + s++)
    1    2      3    4
如果是旧值,那么第一位返回1 ,从第2位开始加1 

如果是新值的话,从第1位开始直接加1,如下
console.log(++s + ++s + ++s)
    2    3      4


console.log( s++ + ++s  + ++s + s++)
1+(2+1) (3+1) (4+1)

a++ + a++ + ++a + ++a 
      3+(3+1)+(4+1)
var a=1;
    console.log( a++ + ++a + a++ + a++ + ++a );
                //1+3+4+3+6=10+7
我的想法是将相同的如a++先进行计算 ,接着把++a的进行计算 
最后将2个结合
如果前面的值已经加过了,那么继续累加的记录会给后面+1,以此类推
关系运行:做比较!返回boolean类型false true
    > < >= <= != ==相等  ===全等 !==全不等
    NaN不等于,不大于,不小于任何值(包括自己)
    判断isNaN(x)如果是NaN的话,返回true 否则false
    与任何数据做!=比较永远为true
null:主动清空一个变量(内存)
undefined:所有变量默认值
==无法判断null,undefined
原因是==自带自动转换''
===可以解决不自动转换
关系运算符
> < <= == != === !==
将多个关系运行综合得出的结论
    做判断时返回true/false bool
&&与 所有条件为true则为true
||其中一个条件为true则为true
!取反




对++(自增1) --(自减1)进行重新温习
++在前返回新值
++在后返回旧值
var i=1;
++i + ++i + ++i + ++i
  1+1 2+1 3+1 4+1
i++ + i++ + i++ + i++
1     1+1   2+1 3+1


i++ + ++i + ++i + i++
2     [3]   4      5
1      3    4      4


短路逻辑:当有多个条件时,只要前一个条件已经得出最终结论,后续条件不再执行
2:
  1条件,1件事,满足条件执行,否则不执行
   语法:表达式1&&(值1)
如:
var d1=prompt('请输入价格');
           d1>=500&&(d1=d1*0.8);
             console.log(d1);
  设置默认值:||
var d1=prompt('请输入内容');
         console.log(d1||'没有内容');
 计算一个结果如果条件1满足时,那么输出此条件
var d1=prompt('请输入成绩');
           d1>=60&&(console.log(d1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值