深入浅出JavaScript-读书记录 ch1-3

<script>标签(本质html)只不过是表示接下来是脚本语言,type="text/javascript"才说明是js。

js是解释语言,因为不需要编译器的转换、

onblur指示用户移往下一个输入域。

onload事件,在浏览器完成iRock网页的载入时触发

js代码也能放在html内事件处理器中。

var userName=prompt("what is your name?", "enter your name here."); //返回的是用户输入
prompt是弹出一个可供输入的窗口,前一个字符串是询问,第二个是文本框中的输入提示

再回顾一下:js使用三种基本数据类型:text, number, boolean

var——>variable还有常量constant

变量刚开始没有值

const Constant name=Constant value; //常量名习惯全是大写字母

假设有个数字存储为文本类型,但你突然想把这个数字用于数学运算,这时就需要把文本转换为数字类型。

数据类型在设置变量值与常量值的同时建立。

小写驼峰型用于变量和函数
大写驼峰型只会用于对象

NaN是数字数据类型有误时的指标,通常只在计算过程中需要数字,却收到非数值的数据时,才会看到NaN

parseInt()和parseFloat() 我们应只提供“只包含数字”的字符串

对象方法和函数

isNaN()判断是否是数字,对待数字更可靠

表单提交 form.submit

parseInt(浮点数)只会返回整数部分

donutString.indexOf("dozen")是判断在donutString里是否有出现dozen


第三章
浏览器中运行js代码的部分称为JavaScript解释器

一旦网页传送到浏览器后,服务器大致就已退场了。事实上,网页传送完毕后,js的每项行为均限制在浏览器中。这一点使得网页负有更多责任,因为网页不用等待服务器处理和返回数据。这种处理就是js被称为客户端语言的原因

js多半不会直接与网络服务器有关系,因为它在客户机上独立运行。js通常用于拦截从服务器传递到浏览器的网络数据;但也可以编写向网站请求信息的脚本,然后于网页上呈现信息。

设定时间()
单次定时: setTimeout("alert('wake up');", 600000); //等待10分钟而后弹出alert框的定时器

间隔定时: setInterval("alert('wake up!');", 600000); //
clearInterval(timerID)这个函数用于清除setInterval()设置的间隔定时器,需要我们传入间隔定时器的ID

document对象代表网页本身
document.body文档主题是网页里能被看见的部分,包括客户端窗口的高度和宽度。
document对象的 body.clientWidth与body.clientHeight特性里存储了客户端窗口的宽度和高度。哭护短是浏览器窗口里呈现网页的特定区域。

网页上所有对象都有一个style对象。
设定高宽时,只需指定一个值,另一个会自动缩放。

浏览器改变大小时触发事件: οnresize="func();"

脚本的生命周期(life cycle)
js于浏览器关闭或网页重新载入时摧毁所有变量

cookie延长脚本的生命周期。
想让变量值存活超过一次网页浏览,你需要另外把数据存储在浏览器里的cookie里。

cookie也可以设定有效日期(expiration date)
js+cookie=适合客户端、便利的持久性数据存储方案
cookie以长文本字符串的形式存储于用户的计算机里。分号;区分各个cookie

当js代码另外存储成另一个文件时,你必须把文件导入任何需要js代码的网页。
<script type="text/javascript" src=""cookie.js"></script>


shitty shit,似乎chrome是不接受未使用var声明的变量的,虽然这样在语法里也没错但是可能是内置严格模式????
啊 感觉每次出现的小错花费的代价都挺大的

function writeCookie(name,value,days)
{
    var expires = "";
        
    if(days)
    {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = ";expires=" + date.toGMTString();
    }
    var cookie = name + "=" + value + expires + "; path=/";
    alert(cookie);
    document.cookie = cookie;
}

function readCookie(name)
{
    var searchName = name + "=";
    var cookies = document.cookie.split(';');
    for(var i=0;i<cookies.length; i++)
    {
        var c = cookies[i];
        while(c.charAt[0] == ' ')
            c = c.substring(1,c.length);
        if(c.indexOf(searchName) == 0)
            return c.substring(searchName.length,c.length);
    }
    return null;
}
function eraseCookie(name)
{
    writeCookie(name,"",-1);
}
        function greetUser(){
            userName=readCookie("userName");//没找到return null userName是全局变量???
            if(userName){
                alert("hello "+userName+", I missed you.");
                }
            else {
                alert("hello, I am your pet rock.");
            }
            alert("fuck you");
        }
        

只有在指定的网页里,cookie名称才需要独特,因为cookie存储时会依创建它们的网页加上区隔,其中包含网页所在的网站信息

cookie只适合存储相对较少的文本数据(少于4kb)。大量数据要使用数据库。cookie也不适合存储敏感数据。

每个cookie都有有效日期。

cookieEnable特性是navigator对象的一部分,该对象为JS提供浏览器本身的信息

JavaScript活在浏览器里。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值